[解決済み] CloudFormationがDynamoDBの作成JSONが無効だと主張する。
2023-06-24 09:18:26
質問
Troposphereで生成した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、それに関しては)非常に新しいので、私は非常に明白な何かを見逃しているかもしれませんが、それは今のところ明らかではありません。
私は周りをググって、本当にこのエラーについての言及を 1 つだけ見つけ、それは CF 自体というよりも、開発者と CF の間のレイヤーに関係するものでした。
誰か、私のテンプレートの何が問題なのか指摘することができますか?
どのように解決するのですか?
DynamoDBに関する私の誤解が原因でした。その のみ 属性は、キーとして使用されるものだけです。よって、AttributeDefinitionsの配列を以下のように変更することで問題が解決しました。
"AttributeDefinitions": [
{
"AttributeName": "audit_id",
"AttributeType": "S"
}
]
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン