Интересный вопрос - боюсь, проверка кода и / или тестирование будут в порядке, но я сомневаюсь в этом:
В то время как Типы данных Amazon DynamoDB поддерживают Строковые и числовые наборы и API для CreateTable также позволяют передавать типы наборов для AttributeType конечно (это всего лишь строковый параметр в конце концов), об этом нигде нет, ни один из их примеров не делает этого, и пользовательский интерфейс CreateTable в Консоли управления AWS явно ограничивает тип либо String, либо Number для обоих хэшей и атрибуты диапазона ключей (см. первое изображение в Amazon DynamoDB - интернет-хранилище данных по NoSQL Way ).
Я думаю, кто-то упомянул в веб-трансляции объявления, что он начинает с перечисленными понятиями Первичный ключ , но может рассмотреть возможность его расширения в будущем (не На 100% положительно, если вспомнить это правильно).
Обновление: результаты проверки / теста
Заданные типы данных не поддерживаются в качестве первичного ключа в настоящее время действительно, см. Документы API для class KeySchemaElement
:
/**
* Sets the value of the AttributeType property for this object.
* <p>
* <b>Constraints:</b><br/>
* <b>Allowed Values: </b>S, N
*
* @param attributeType The new value for the AttributeType property for this object.
*
* @see ScalarAttributeType
*/
public void setAttributeType(String attributeType) {
this.attributeType = attributeType;
}
Изменение примера таблицы дает ожидаемое исключение соответственно:
INFO: Получен ответ об ошибке: Код состояния: 400, Сервис AWS:
AmazonDynamoDB, идентификатор запроса AWS:
XXXXXXXX, код ошибки AWS:
ValidationException, сообщение об ошибке AWS: обнаружена 1 ошибка проверки:
Значение 'SS' в 'keySchema.hashKeyElement.attributeType' не удалось
выполнить ограничение: элемент должен удовлетворять заданному значению перечисления: [N, S] Failed
создать таблицу TestTable