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