如何在CloudFormation上将DynamoDB读/写容量模式设置为按需

时间:2018-12-06 13:29:07

标签: amazon-web-services amazon-dynamodb amazon-cloudformation

我已经看到有关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

谢谢。

1 个答案:

答案 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