Как вернуть элементы в динамоде на 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