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"
}
}
}
}