Добавление неключевого атрибута в DynamoDB с помощью Terraform. - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь добавить неключевой атрибут в таблицу Dynamo. Просто пытаюсь выполнить этот https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html первый пример. Я получаю сообщение об ошибке «Все атрибуты должны быть проиндексированы. Неиспользованный атрибут»

Может кто-нибудь объяснить это? Или как добавить неключевой атрибут в Dynamodb с помощью Terraform.

1 Ответ

0 голосов
/ 04 июля 2018

DynamoDB - это хранилище данных без схемы, поэтому обычно нет необходимости объявлять атрибуты заранее.

Исключением является любой атрибут, который действует как ключ либо для самой таблицы (первичный ключ, ключ сортировки), либо для вторичного индекса. Они должны быть определены как часть определения таблицы, потому что DynamoDB должен знать, как структурировать необходимые индексы для эффективного запроса по этим атрибутам.

Это более подробно упомянуто в документации:

Определить только те атрибуты на объекте таблицы, которые будут использоваться как:

  • Ключ хэша таблицы или ключ диапазона
  • Хэш-ключ LSI или GSI или ключ диапазона

Три атрибута UserId, GameTitle и TopScore из примера используются для индексов hash_key, range_key и GameTitleIndex соответственно, и поэтому они должны быть приняты.

Чтобы установить атрибут, который не является ключом, вам просто нужно включить его при записи элемента в таблицу. DynamoDB сохранит этот результат и вернет его при получении элемента, но вы не сможете использовать его в качестве фильтра или ключа сортировки при запросе таблицы.

...