【问题标题】:Attribute Definitions Inconsistency When Creating DynamoDB Table via CloudFormation通过 CloudFormation 创建 DynamoDB 表时属性定义不一致
【发布时间】:2019-09-12 22:04:10
【问题描述】:

当我尝试构建以下内容时:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Foobar
Resources:
  FailuresTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Failures
      AttributeDefinitions:
        -
          AttributeName: failureKey
          AttributeType: S
        -
          AttributeName: status,
          AttributeType: S
      KeySchema:
        -
          AttributeName: failureKey
          KeyType: HASH
      GlobalSecondaryIndexes:
        -
          IndexName: failure-status
          KeySchema:
            - AttributeName: status
              KeyType: RANGE
          Projection:
            ProjectionType: ALL
          ProvisionedThroughput:
            ReadCapacityUnits: 5
            WriteCapacityUnits: 15
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 15

我收到错误,“Property AttributeDefinitions 与表的 KeySchema 和二级索引不一致”。

我定义了两个属性:failureKey 和 status。第一个在我桌子的钥匙里。第二个是表的唯一 GSI 中的一个键。

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    全局二级索引的键模式中的第一个键列必须是哈希类型。

    AWSTemplateFormatVersion: '2010-09-09'
    Transform: AWS::Serverless-2016-10-31
    Description: Foobar
    Resources:
      FailuresTable:
        Type: AWS::DynamoDB::Table
        Properties:
          AttributeDefinitions:
            -
              AttributeName: "failureKey"
              AttributeType: "S"
            -
              AttributeName: "status"
              AttributeType: "S"
          KeySchema:
            -
              AttributeName: "failureKey"
              KeyType: "HASH"
          ProvisionedThroughput:
            ReadCapacityUnits: 5
            WriteCapacityUnits: 5
          TableName: "Failures"
          GlobalSecondaryIndexes:
            -
              IndexName: "failure-status"
              KeySchema:
                -
                  AttributeName: "status"
                  KeyType: "HASH"
              Projection:
                ProjectionType: "ALL"
              ProvisionedThroughput:
                ReadCapacityUnits: 5
                WriteCapacityUnits: 5
    

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2019-11-13
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2017-06-14
      • 2018-12-03
      • 2017-08-10
      • 1970-01-01
      相关资源
      最近更新 更多