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

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

Я пробовал

aws dynamodb query --table-name Users 

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

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

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

Ответ 1

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

aws dynamodb scan --table-name Users

Ответ 2

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

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

Ответ 3

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

создать файл, содержащий ваши ключи: 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
Надеюсь, что поможет

Ответ 4

aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl

Ответ 5

Так как вопрос об использовании операции 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 является зарезервированным ключевым словом, поэтому я не могу использовать его внутри выражения условия ключа.