[amazon-dynamodb] CloudFormation에서 내 DynamoDB 생성 JSON이 유효하지 않다고 주장합니다 ..

Troposphere에서 생성 한 JSON (의 DynamoDB 부분)은 다음과 같습니다.

"sandbox": {
        "Properties": {
            "AttributeDefinitions": [
                {
                    "AttributeName": "audit_id",
                    "AttributeType": "S"
                },
                {
                    "AttributeName": "status",
                    "AttributeType": "S"
                },
                {
                    "AttributeName": "filename",
                    "AttributeType": "S"
                },
                {
                    "AttributeName": "file_detected_dt",
                    "AttributeType": "S"
                },
                {
                    "AttributeName": "time_taken",
                    "AttributeType": "N"
                },
                {
                    "AttributeName": "number_rows_processed_file",
                    "AttributeType": "N"
                },
                {
                    "AttributeName": "number_rows_created_db",
                    "AttributeType": "N"
                },
                {
                    "AttributeName": "info_messages",
                    "AttributeType": "S"
                }
            ],
            "KeySchema": [
                {
                    "AttributeName": "audit_id",
                    "KeyType": "HASH"
                }
            ],
            "ProvisionedThroughput": {
                "ReadCapacityUnits": {
                    "Ref": "ReadCapacityUnits"
                },
                "WriteCapacityUnits": {
                    "Ref": "WriteCapacityUnits"
                }
            }
        },
        "Type": "AWS::DynamoDB::Table"
    }

CloudFormation은 VPC를 스핀 업하려고 할 때 다음 오류를 표시 Property AttributeDefinitions is inconsistent with the KeySchema of the table and the secondary indexes합니다..

하지만 … 그렇습니까? 나는 audit_id고독한 키로 지정 하고 있으며 AttributeDefinitions 목록 내에 확실히 존재합니다. 저는 CF (및 Dynamo, 그 문제)를 처음 접했기 때문에 매우 분명한 것을 놓치고있을 수 있지만 지금은 분명하지 않습니다.

나는 주변을 훑어 보았고 실제로이 오류에 대한 한 가지 언급 만 발견했으며 CF 자체가 아닌 개발자와 CF 사이의 계층과 더 관련이 있습니다.

누구든지 내 템플릿의 문제점을 지적 할 수 있습니까?



답변

이것은 DynamoDB에 대한 내 부분의 오해 때문이었습니다. 여기서 정의해야하는 유일한 속성은 키로 사용되는 속성입니다. 따라서 AttributeDefinitions 배열을 다음과 같이 변경하면 문제가 해결되었습니다.

"AttributeDefinitions": [
            {
                "AttributeName": "audit_id",
                "AttributeType": "S"
            }
]


답변