Я просто запускаюсь с DynamoDB, используя Java SDK (v1.8). Я создал очень простую таблицу с помощью консоли AWS. В моей таблице есть первичный хеш-ключ, который является строкой (без диапазона). Я поместил один элемент в таблицу с 4 другими значениями атрибутов (все строки).
Я делаю простой 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
.