80 votes

CloudFormation insiste mon DynamoDB création JSON n'est pas valide .. mais je ne vois pas comment

Voici (la DynamoDB partie de) mon Troposphère généré 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 me donne cette erreur en essayant de tourner la VPC: Property AttributeDefinitions is inconsistent with the KeySchema of the table and the secondary indexes.

Mais ... est-il? Je suis en précisant audit_id qu'une seule clé, et il existe certainement dans le AttributeDefinitions liste. Je suis très nouveau pour les CF (et Dynamo, d'ailleurs) donc je peut très bien être absent quelque chose de très évident, mais ce n'est pas évident pour moi en ce moment.

J'ai googlé autour et que vraiment trouvé une mention de cette erreur, et il était plus à voir avec une couche entre le développeur et des FC, plutôt que FC lui-même.

Quelqu'un peut-il préciser ce qui ne va pas avec mon modèle?

176voto

user1381745 Points 2269

C'était jusqu'à une incompréhension de ma part concernant DynamoDB. Les seuls attributs qui doivent être définies ici sont ceux qui seront utilisés comme clés. Ainsi, en changeant la AttributeDefinitions tableau à la suite résolu le problème:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X