在 Cloudformation 中创建 DynamoDB 表失败

Posted

技术标签:

【中文标题】在 Cloudformation 中创建 DynamoDB 表失败【英文标题】:Creating a DynamoDB table in Cloudformation fails 【发布时间】:2018-12-03 08:52:18 【问题描述】:

我收到以下错误:

Property AttributeDefinitions与表的KeySchema和二级索引不一致

但我不确定这里出了什么问题。

  FeedbackTable: 
    Type: "AWS::DynamoDB::Table"
    Properties: 
      AttributeDefinitions: 
        - 
          AttributeName: "uuid"
          AttributeType: "S"
        - 
          AttributeName: "timestamp"
          AttributeType: "N"
        - 
          AttributeName: "pros"
          AttributeType: "S"
        - 
          AttributeName: "cons"
          AttributeType: "S"
        - 
          AttributeName: "comments"
          AttributeType: "S"
        - 
          AttributeName: "options"
          AttributeType: "S"
        - 
          AttributeName: "luaA"
          AttributeType: "S"
        - 
          AttributeName: "luaB"
          AttributeType: "S"
        - 
          AttributeName: "luaC"
          AttributeType: "S"
      KeySchema: 
        - 
          AttributeName: "uuid"
          KeyType: "HASH"
        - 
          AttributeName: "timestamp"
          KeyType: "RANGE"
      ProvisionedThroughput: 
        ReadCapacityUnits: "1"
        WriteCapacityUnits: "1"
      TableName: "BD_Feedback"

【问题讨论】:

【参考方案1】:

您无需在此处指定 DynamoDB 表的所有属性。 cloudformation 需要的只是键和索引属性的定义。

因此,如果您将 AttributeDefinition 减少到 uuidtimestamp,应该没问题(只要您没有二级索引)。

这里是 CloudFormation 文档中关于此主题的部分:

描述表的关键模式的属性列表和 索引。允许重复。

CloudFormation docs

【讨论】:

以上是关于在 Cloudformation 中创建 DynamoDB 表失败的主要内容,如果未能解决你的问题,请参考以下文章

在特定子网和安全组 cloudformation 中创建实例

在 Cloudformation 中创建 DynamoDB 表失败

使用 CloudFormation 在 S3 存储桶中创建 Lambda 通知

如何使用 Cloudformation 在 AWS RestAPI 中创建嵌套资源路径?

AWS Cloudformation - 在 EFS 中创建初始文件夹

是否可以在 cloudformation 模板中创建具有多个电子邮件收件人的 SNS 主题?