Hier ist (der DynamoDB-Teil von) meinem von Troposphere generierten 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 gibt mir diesen Fehler beim Versuch, die VPC hochzufahren : Property AttributeDefinitions is inconsistent with the KeySchema of the table and the secondary indexes
.
Aber ist es? Ich gebe audit_id
als Einzelschlüssel an, und er ist definitiv in der AttributeDefinitions-Liste vorhanden. Ich bin sehr neu bei CF (und auch bei Dynamo), daher fehlt mir möglicherweise etwas sehr Offensichtliches, aber es ist mir im Moment nicht klar.
Ich habe herumgegoogelt und nur eine einzige Erwähnung dieses Fehlers gefunden, und es ging eher um eine Schicht zwischen Entwickler und CF als um CF selbst.
Kann jemand darauf hinweisen, was mit meiner Vorlage nicht stimmt?
amazon-dynamodb
amazon-cloudformation
user1381745
quelle
quelle
Antworten:
Dies war auf ein Missverständnis meinerseits in Bezug auf DynamoDB zurückzuführen. Die einzigen Attribute, die hier definiert werden sollten, sind diejenigen, die als Schlüssel verwendet werden. Das Ändern des AttributDefinitions-Arrays in das folgende hat das Problem gelöst:
quelle