Ответ 1
Если вы хотите сбросить всю таблицу, просто используйте
aws dynamodb scan --table-name Users
Итак, у меня есть таблица dynamoDB Users, и я хочу вернуть все содержимое этой таблицы. или, может быть, даже некоторые.
Я пробовал
aws dynamodb query --table-name Users
и он говорит, что мне нужно указать условие ключа или ключевое условие, поэтому я добавил следующее:
aws dynamodb query --table-name Users --key-condition-expression Username = "test"
и он возвращает сообщение об ошибке "Неизвестные параметры: тест"
Если вы хотите сбросить всю таблицу, просто используйте
aws dynamodb scan --table-name Users
Попробуйте этот формат:
aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
В соответствии с моим пониманием вы не передаете "ключ" (хэш или хэш/диапазон) правильно
создать файл, содержащий ваши ключи: test.json
{
"userName": {"S": "abc"},
"anyRangeKey": {"S": "xyz"} //optional
}
Run
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
Так как вопрос об использовании операции 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
является зарезервированным ключевым словом, поэтому я не могу использовать его внутри выражения условия ключа.