Java SDK (v1.8) を使用して DynamoDB を起動して実行しています。AWS コンソールを使用して非常に単純なテーブルを作成しました。私のテーブルには、文字列 (範囲なし) であるプライマリ ハッシュ キーがあります。他の 4 つの属性値 (すべて文字列) を持つテーブルに 1 つの項目を入れました。
テーブル内のそのアイテムに対して単純な Java リクエストを作成していますが、ResourceNotFoundException
. 私が提供しているテーブル名が正しいことは間違いありません。アイテムのクエリに使用しているプライマリ ハッシュ キーの名前も同様です。テーブルのステータスは AWS コンソールに表示されActive
、項目とその値も確認できます。
これは私が得ているエラーです:
Requested resource not found (Service: AmazonDynamoDB; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: ...)
私は(dynamodbv2
クラスのバージョンを使用して)以下を試しました:
Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
key.put(PRIMARY_KEY, new AttributeValue().withS(value));
GetItemRequest request = new GetItemRequest()
.withTableName(TABLE_NAME)
.withKey(key);
GetItemResult result = client.getItem(request);
また、次のように、これらすべてのクラスの古い非推奨バージョンを使用してみました。
GetItemRequest request = new GetItemRequest()
.withTableName(TABLE_NAME)
.withKey(new Key().withHashKeyElement(new AttributeValue().withS(value)));
GetItemResult result = client.getItem(request);
・・・でも結果は同じ。
私の理解では、ResourceNotFoundException
参照されているテーブル名または属性が無効であることを意味しますが、そうではありません。テーブルの状態が早すぎる場合にもスローされる可能性がありますCreating
が、私のテーブルはActive
.