Подтвердить что ты не робот

CloudFormation настаивает на моем создании DynamoDB. JSON недействителен. Но я не вижу, как

Здесь (часть DynamoDB) мой созданный Troposphere JSON:

"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 (и в том числе и в "Динамо" ), поэтому я, возможно, упускаю что-то чрезвычайно очевидное, но в настоящее время это не очевидно.

Я googled вокруг и только действительно нашел одно упоминание об этой ошибке, и это было больше связано со слоем между разработчиком и CF, а не с самим собой.

Может ли кто-нибудь указать, что не так с моим шаблоном?

4b9b3361

Ответ 1

Это было до недоразумения с моей стороны относительно DynamoDB. Единственными атрибутами, которые должны быть определены здесь, являются те, которые будут использоваться в качестве ключей. Таким образом, изменение массива AttributeDefinitions на следующее решение проблемы:

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