[解決済み] キースキーマの属性数は、属性定義で定義された属性数と一致する必要があります。
2022-04-22 03:53:37
質問事項
DynamoDBのJavaScriptシェルで簡単なテーブルを作成しようとしているのですが、この例外が発生します。
{
"message": "The number of attributes in key schema must match the number of attributes defined in attribute definitions.",
"code": "ValidationException",
"time": "2015-06-16T10:24:23.319Z",
"statusCode": 400,
"retryable": false
}
以下は、私が作ろうとしているテーブルです。
var params = {
TableName: 'table_name',
KeySchema: [
{
AttributeName: 'hash_key_attribute_name',
KeyType: 'HASH'
}
],
AttributeDefinitions: [
{
AttributeName: 'hash_key_attribute_name',
AttributeType: 'S'
},
{
AttributeName: 'attribute_name_1',
AttributeType: 'S'
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 1,
WriteCapacityUnits: 1
}
};
dynamodb.createTable(params, function(err, data) {
if (err) print(err);
else print(data);
});
しかし、2つ目の属性を
KeySchema
であれば、問題なく動作します。以下は、作業テーブルです。
var params = {
TableName: 'table_name',
KeySchema: [
{
AttributeName: 'hash_key_attribute_name',
KeyType: 'HASH'
},
{
AttributeName: 'attribute_name_1',
KeyType: 'RANGE'
}
],
AttributeDefinitions: [
{
AttributeName: 'hash_key_attribute_name',
AttributeType: 'S'
},
{
AttributeName: 'attribute_name_1',
AttributeType: 'S'
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 1,
WriteCapacityUnits: 1
}
};
dynamodb.createTable(params, function(err, data) {
if (err) print(err);
else print(data);
});
キースキーマに範囲を追加したくありません。どのように修正すればよいですか?
どのように解決するのですか?
TL;DR
にキー以外の属性定義を含めないでください。
AttributeDefinitions
.
DynamoDBはスキーマレス(キーのスキーマを除く)である
つまり、テーブルを作成する際にキーのスキーマ(属性名と型)を指定する必要があるのです。まあ、キー以外の属性は指定する必要はないんだけどね。後から任意の属性の項目を入れることができます(もちろんキーは含まなければなりません)。
から
ドキュメントページ
を使用します。
AttributeDefinitions
は次のように定義されています。
テーブルとインデックスのキースキーマを記述する属性の配列です。
テーブルを作成する際に
AttributeDefinitions
フィールドは、ハッシュキーやレンジキーにのみ使用されます。最初のケースでは、2つのAttributeDefinitionを提供しながら、ハッシュ・キー(番号1)だけがあります。これが例外の根本的な原因です。
関連
最新
-
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 実装 サイバーパンク風ボタン