#amazon-dynamodb #amazon-dynamodb-index
#amazon-dynamodb #amazon-dynamodb-index
Вопрос:
Итак, с очень простой таблицей DynamoDB, скажем, с первичным ключом: Address: string (например: ‘1 someRd, someCity, someCounty’
и GSI: почтовый индекс: строка
Если я попытаюсь вручную добавить элемент в таблицу, указав только поле адреса и без почтового индекса, он выдает ошибку: одно или несколько значений параметра недопустимы. Значение, указанное для ключа вторичного индекса, не поддерживается. Значение атрибута для ключевого атрибута не может содержать пустое строковое значение. IndexName: почтовый индекс, IndexKey: почтовый индекс
Я предположил, что разреженные GSI были разрешены в соответствии с: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-general-sparse-indexes.html
Итак, если мы установим GSI, нужно ли включать это поле в каждый элемент таблицы?
Комментарии:
1. Вам не нужно указывать ключ GSI для каждого элемента в таблице. Судя по ошибке, похоже, что Postcore устанавливается в пустую строку (по сравнению с тем, что там вообще нет). Csn вы делитесь тем, как вы выполняете вставку?
2. Спасибо @SethGeoghegan да, это привело меня к проблеме.. Только когда вы пытаетесь вручную добавить элемент через веб-консоль aws, и он услужливо отображается в консоли со всеми полями, указанными в моем бессерверном шаблоне yaml, если вы также не «удалите» эти поля (в консоли), вы не применяете непустую строкуto, тогда он думает, что вы пытаетесь назначить пустую строку! Я предположил, что по умолчанию будет использоваться поле null, а не пустая строка — поскольку, похоже, у вас не может быть пустой строки, можно с уверенностью предположить, что это не обязательное поле! Спасибо, Сет
3. Я пытался сделать то же самое, что и вы, вы сэкономили мне немного времени, спасибо 🙂