CloudFormation настаивает на том, что мой DynamoDB creation JSON недействителен. но я не могу понять, как
вот (часть DynamoDB) мой тропосферный 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, а не с самим CF.
может ли кто-нибудь указать, что не так с моим шаблоном?
1 ответ:
Это было до непонимания с моей стороны относительно DynamoDB. Элемент только атрибуты, которые должны быть определены здесь являются те, которые будут использоваться в качестве ключей. Таким образом, изменение массива AttributeDefinitions на следующий решило проблему:
"AttributeDefinitions": [ { "AttributeName": "audit_id", "AttributeType": "S" } ]