Как вернуть элементы в динамоде на aws-cli

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

Я старался

aws dynamodb query --table-name Users 

и он говорит, что я должен указать ключевое условие или выражение ключевого условия, поэтому я добавил следующее:

aws dynamodb query --table-name Users --key-condition-expression Username = "test"

и возвращает сообщение об ошибке "Неизвестные параметры: тест"

4 ответа

Решение

Если вы хотите сбросить всю таблицу, просто используйте

aws dynamodb scan --table-name Users

Попробуйте этот формат:

aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'

Поскольку речь идет об использовании query операция, вот оно.

Как поясняется в документации AWS cli, вы должны отделить значения атрибутов от условия с помощью--expression-atribute-values параметр:

aws dynamodb query --table-name Users 
    --key-condition-expression "Username = :v1" 
    --expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" } }"

Кроме того, вы можете комбинировать дополнительные атрибуты в фильтре (в моем случае у меня есть ключ сортировки Datetime, по которому я хочу фильтровать):

aws dynamodb query 
  --table-name Users
  --key-condition-expression "Username = :v1 AND #Datetime BETWEEN :v2 AND :v3" 
  --expression-attribute-names "{ \"#Datetime\": \"Datetime\" }" 
  --expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" }, \":v2\" : { \"S\" : \"2019-06-06\" }, \":v3\" : { \"S\" : \"2019-06-07\" } }" 

Здесь #Datetime отображение выполняется через --expression-attribute-names параметр, потому что Datetime является зарезервированным ключевым словом, поэтому я не могу использовать его в выражении ключевого условия.

Насколько я понимаю, вы не передаете "ключ"(хэш или хэш / диапазон) должным образом

создайте файл, содержащий ваши ключи: test.json

{
    "userName": {"S": "abc"},
    "anyRangeKey": {"S": "xyz"}  //optional
}

Бежать

aws dynamodb get-item --table-name users --key file://test.json

см. http://docs.aws.amazon.com/cli/latest/reference/dynamodb/get-item.html
надеюсь, это поможет

aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl
Другие вопросы по тегам