私はDynamoDBのテーブルにレコード(アイテム)を挿入、私はAWSからの応答が実際の項目が挿入され含まれていません実現:DynamoDB insert(put)item - 作成されたアイテムを返しますか?私のPythonスクリプトで
{'ResponseMetadata': {'HTTPHeaders': {'connection': 'keep-alive',
'content-length': '2',
'content-type': 'application/x-amz-json-1.0',
'date': 'Fri, 27 Jan 2017 23:31:22 GMT',
'server': 'Server',
'x-amz-crc32': '234324243',
'x-amzn-requestid': 'xxxxxxxxxx'},
'HTTPStatusCode': 200,
'RequestId': 'xxxxxxxxxx',
'RetryAttempts': 0}}
私はのようなロジックを持っているので、これは残念なことです。
if not user.exists():
user = create_user()
else:
user = get_user()
user.do_something()
私はちょうど挿入されたユーザーオブジェクトを取得するために別の往復をしません。
boto3
をPythonで使用しているので、user
オブジェクトは単なる辞書のようなものですが、単なる1つの表現を使うことができてうれしいです。また、put_item
のように思われます
r = user_table.put_item(Item={'user_id': uid, 'info' : { ... }})
put'dアイテムを返すことができるはずですか?それとも、他のエンドポイントができますか?
ありがとうございました!
"ReturnValuesパラメータはいくつかのDynamoDB操作で使用されていますが、PutItemはNONEまたはALL_OLD以外の値は認識しません。私はPutItemが 'ALL_NEW'を受け入れると言っていることを理解しています。その後、ドキュメントは古くなっていますか? – guival
実際、私はこれについて[未解決の問題](https://github.com/boto/boto3/issues/1150)を見つけました。結局のところ、 'ALL_NEW'はput_itemには有効ではないか、何か不足していますか? – guival
@guivalあなたは正しいです、私は私の答えを更新しました。 –