tutorial pricing management cloudformation aws and amazon-web-services amazon-dynamodb amazon-cloudformation

amazon web services - pricing - PropertyDefinition inconsistent



cloudformation templates (1)

Tengo la siguiente plantilla que estoy usando en la interfaz de usuario de Cloud Formation para crear una tabla dynamoDB Quiero crear una tabla con PrimaryKey como ID y sortKey como Valor

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "DB Description", "Resources" : { "TableName" : { "Type" : "AWS::DynamoDB::Table", "Properties" : { "AttributeDefinitions": [ { "AttributeName" : "ID", "AttributeType" : "S" }, { "AttributeName" : "Value", "AttributeType" : "S" } ], "KeySchema": [ { "AttributeName": "ID", "KeyType": "HASH" } ] }, "TableName": "TableName" } } }

En la IU de CF, hago clic en la nueva pila, señalo el archivo de template de mi computadora local, le doy un nombre a la pila y hago clic en siguiente. Después de algún tiempo, recibo un error que dice que Property AttributeDefinitions es inconsistente con el KeySchema de la tabla y los índices secundarios


El problema es que la clave Resources.Properties.AttributeDefinitions solo debe definir las columnas utilizadas para los índices o claves. En otras palabras, las claves en Resources.Properties.AttributeDefinitions deben coincidir con las mismas claves definidas en Resources.Properties.KeySchema .

Documentos de AWS:

AttributeDefinitions: una lista de objetos AttributeName y AttributeType que describen el esquema clave para la tabla y los índices.

por lo que la plantilla resultante se vería así:

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "DB Description", "Resources" : { "TableName" : { "Type" : "AWS::DynamoDB::Table", "Properties" : { "AttributeDefinitions": [ { "AttributeName" : "ID", "AttributeType" : "S" } ], "ProvisionedThroughput":{ "ReadCapacityUnits" : 1, "WriteCapacityUnits" : 1 }, "KeySchema": [ { "AttributeName": "ID", "KeyType": "HASH" } ] , "TableName": "table5" } } } }