CloudFormation坚持我的DynamoDB创buildJSON是无效的..但我不明白如何

下面是我的对stream层生成的JSON(的DynamoDB部分):

"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(和Dynamo,对于这个问题)非常陌生,所以我可能会错过一些非常明显的东西,但目前对我来说并不明显。

我search了一下,只是发现了一个提到这个错误的地方,而且更多的是在开发者和CF之间,而不是CF本身。

任何人都可以指出我的模板有什么问题?

这是我对DynamoDB的一个误解。 这里应该定义的唯一属性是那些将被用作键的属性。 因此,将AttributeDefinitions数组更改为以下解决scheme:

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