我已经看到有关site的有关DynamoDB On-demand的信息,并且将我由CloudFormation创建的表更新为On-demand。现在,当我尝试更新我的堆栈时,出现此错误:
一个或多个参数值无效:BillingMode为PAY_PER_REQUEST时,不能指定ReadCapacityUnits或WriteCapacityUnits
是否可以将CloudFormation上的DynamoDB读/写容量模式设置为按需?
编辑:
我已在AWS控制台上更新为按需。
编辑2:
我的模板:
DynamoDBUsersTable:
Type: AWS::DynamoDB::Table
Description: Users table
Properties:
TableName: !Sub ${StackName}-users-table
AttributeDefinitions:
- AttributeName: userId
AttributeType: S
KeySchema:
- AttributeName: userId
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 10
WriteCapacityUnits: 10
谢谢。
答案 0 :(得分:21)
您需要向属性中添加BillingMode: PAY_PER_REQUEST
,并从表属性和所有ProvisionedThroughput
中删除GlobalSecondaryIndexes
(如果已指定)。所以最后您的模板必须看起来像:
DynamoDBUsersTable:
Type: AWS::DynamoDB::Table
Description: Users table
Properties:
TableName: !Sub ${StackName}-users-table
BillingMode: PAY_PER_REQUEST
AttributeDefinitions:
- AttributeName: userId
AttributeType: S
KeySchema:
- AttributeName: userId
KeyType: HASH