【问题标题】:How to resolve AWS CloudFormation inconsistent Property AttributeDefinitions?如何解决 AWS CloudFormation 不一致的属性属性定义?
【发布时间】:2019-11-13 15:43:37
【问题描述】:

我正在尝试使用 AWS CloudFormation 创建一个 AWS DynamoDB 表,
创建相同内容时出现错误。

之前我已经指定了我想要的表的所有列,
但似乎 AttributeDefinitions 和 KeySchema Properties 需要以某种方式匹配,但不确定。

我缩小到只有 2 列必须在我的表中,
IE。 user_id and expiry,
user_id 是主键expiry 是用于 TTL 目的的列。

我仍然收到以下错误 -
属性AttributeDefinitions与表的KeySchema和二级索引不一致

以下是我的模板的 sn-p,根据 CloudFormation StatusReason,我遇到了问题 -

userExpiry:
    Type: 'AWS::DynamoDB::Table'
    Properties:
      TableName: !Join ['_', [!Ref "prefix",'user_expiry'] ]
      AttributeDefinitions:
        -
          AttributeName: 'expiry'
          AttributeType: 'N'
        -
          AttributeName: 'user_id'
          AttributeType: 'S'
      KeySchema:
        - AttributeName: "user_id"
          KeyType: "HASH"
      TimeToLiveSpecification:
        AttributeName: "expiry"
        Enabled: true
      ProvisionedThroughput:
        ReadCapacityUnits: 1
        WriteCapacityUnits: 1
      Tags:
        -
          Key: 'Project'
          Value: !Ref "ProjectName"
        -
          Key: 'Environment'
          Value: !Ref "ResourceEnvironment"

我正在关注这个参考文档 -
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html

【问题讨论】:

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


    【解决方案1】:

    Yaml 对文件使用固定缩进模式/方案,这可能是出现错误的原因。我尝试了以下代码并能够创建 DynamoDB 表。希望您可以根据您的要求进行足够的更改:

    AWSTemplateFormatVersion:“2010-09-09” 描述:“用于创建 DynamoDB 表的 AWS CloudFormation 模板 - userExpiry。” 资源:用户到期: 类型:'AWS::DynamoDB::Table' 属性: 表名:新表名 属性定义: - 属性名称:'user_id' 属性类型:'S'

    密钥架构: - 属性名称:“user_id” 密钥类型:“哈希” 生存时间规格: 属性名称:“到期” 启用:真 预置吞吐量: 读取容量单位:1 写入容量单位:1 标签: - 密钥:“我的密钥” 值:“项目名称”

    (*) 使用上述 Yml 文件创建的表 (NewTableName) - 仅包含“user_id”的单个列。可以在插入记录期间放置 TTL 规范列“到期”。

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 2018-01-12
      • 2019-04-30
      相关资源
      最近更新 更多