DynamoDB 是一种完全托管的 NoSQL 数据库服务,它提供快速且可预测的性能,具有无缝的可扩展性。DynamoDB 使用 JSON 格式来存储数据,这使得数据的处理和传输变得简单。
DynamoDB 中的主要数据类型包括:
DynamoDB 适用于各种应用场景,包括但不限于:
假设我们有一个 JSON 数据结构如下:
{
"userId": "12345",
"userName": "John Doe",
"email": "john.doe@example.com"
}
我们可以创建一个 DynamoDB 表来存储这种数据结构。以下是创建表的步骤:
userId
email
import boto3
dynamodb = boto3.client('dynamodb')
table_name = 'UsersTable'
response = dynamodb.create_table(
TableName=table_name,
KeySchema=[
{
'AttributeName': 'userId',
'KeyType': 'HASH' # Partition key
},
{
'AttributeName': 'email',
'KeyType': 'RANGE' # Sort key (optional)
}
],
AttributeDefinitions=[
{
'AttributeName': 'userId',
'AttributeType': 'S' # String
},
{
'AttributeName': 'email',
'AttributeType': 'S' # String
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
}
)
print("Table status:", response['TableDescription']['TableStatus'])
原因:可能是 IAM 角色或策略没有足够的权限来创建 DynamoDB 表。
解决方法:
dynamodb:CreateTable
操作。示例 IAM 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:CreateTable",
"dynamodb:DescribeTable"
],
"Resource": "*"
}
]
}
通过以上步骤,你应该能够成功创建一个 DynamoDB 表,并解决常见的权限问题。
高校公开课
Elastic 实战工作坊
云+社区技术沙龙[第27期]
DBTalk技术分享会
云+社区技术沙龙[第22期]
数字化产业研学会第一期
云+社区开发者大会 长沙站
腾讯技术开放日
领取专属 10元无门槛券
手把手带您无忧上云