DynamoDBではテーブル作成時にkeyやindexに含まれていないattributeを宣言しようとするとエラーになるのだが、ローカル版ではこれが問題なく宣言できてしまう。動作は実際のDynamoDBと異なる場合がある。そのことは上記公式ドキュメントに示されているが、明記されていない違いもある。前提DynamoDBでは以下のようなJSONでテーブル構造を宣言する。]この定義からはuser_idとcreated_atがkeyであるテーブルが作成される。attributeはuser_idとcreated_atだけである。keyはこれで良いとしてもっとattributeの多いテーブルを作ろうと、contents_idというattributeを追加するとエラーが発生する。definitions.要するにkey(あるいは各種index)に含まれないattributeは宣言できないということになる。無駄なものを定義するなということなのだろう。実際にそのattributeを持ったテーブルが作成されてしまう。これによって追加分のattributeがデータの挿入時に必須になる、とかいう事はないので、単に宣言したattributeがdescribe-table等で表示されるようになるという程度。ローカルでの動作上は特に問題ないのだが、このテーブル定義で実際のDynamoDBにテーブルを作成しようとするとエラーになって慌てるので注意しよう、というお話。WolfdogGitHub:wolf-dogTwitter:@Wolfdog666E-mail:hivedark@gmail.com。