web-dev-qa-db-ja.com

aws-cliのdynamodbでアイテムを返す方法

したがって、dynamoDBテーブルUsersがあり、このテーブルのすべてのコンテンツを返したいと思います。または多分いくつか。

私は試した

aws dynamodb query --table-name Users 

そして、私はキー条件またはキー条件式を指定する必要があると言っているので、次を追加しました:

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

そして、「不明なオプション:テスト」というエラーメッセージを返します

20
Bennjoe Mordeno

テーブル全体をダンプする場合は、単に使用します

aws dynamodb scan --table-name Users
30
ataylor

この形式を試してください:

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

私の理解では、「キー」(ハッシュまたはハッシュ/範囲)を適切に渡していない

キーを含むファイルを作成します: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
役立つ希望

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

質問は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が予約キーワードであるため、キー条件式内で使用できないためです。

0
SebaGra