翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
BatchDeleteItem
BatchDeleteItem
リクエストオブジェクトを使用すると、 AWS AppSync DynamoDB 関数に、複数のテーブルにまたがる可能性のある複数の項目を削除するBatchWriteItem
リクエストを DynamoDB に実行するように指示できます。このリクエストオブジェクトでは、以下の情報を指定する必要があります。
-
項目を削除するテーブルの名前
-
各テーブルから削除する項目のキー
DynamoDB の BatchWriteItem
制限が適用されるため、条件式を指定することはできません。
BatchDeleteItem
リクエストオブジェクトのノードの構造は次のとおりです。
type DynamoDBBatchDeleteItemRequest = { operation: 'BatchDeleteItem'; tables: { [tableName: string]: { [key: string]: any }[]; }; };
各フィールドの定義は以下のようになります。
BatchDeleteItem フィールド
-
operation
-
実行する DynamoDB の処理。
BatchDeleteItem
DynamoDB の処理を実行するには、これをBatchDeleteItem
に設定する必要があります。この値は必須です。 -
tables
-
項目を削除する DynamoDB テーブル。各テーブルは、削除する項目のプライマリキーを表す DynamoDB キーのリストです。DynamoDB の項目には、単一のハッシュキー、またはハッシュキーとソートキーが含まれています。これはテーブルの構造によって変わります。「型付き値」を指定する方法の詳細については、「型システム (リクエストマッピング)」を参照してください。1 つ以上のテーブルを指定する必要があります。値 が必要です。
覚えておくべきポイント:
-
DeleteItem
オペレーションとは対照的に、完全に削除された項目はレスポンスで返されません。渡されたキーのみが返されます。 -
項目がテーブルから削除されなかった場合は、そのテーブルの data ブロックに null 要素があります。
-
呼び出し結果は、リクエストオブジェクト内で提供された順序に基づいて、テーブル別にソートされます。
-
Delete
内部の各BatchDeleteItem
コマンドはアトミックです。ただし、バッチは部分的に処理できます。エラーのためにバッチが部分的に処理された場合、未処理のキーは unprocessedKeys ブロック内に呼び出し結果の一部として返されます。 -
BatchDeleteItem
は 25 キーに制限されています。 -
このオペレーション、競合検出で使用するとサポートされていません。両方を同時に使用すると、エラーが発生する可能性があります。
次の例の関数リクエストハンドラーの場合:
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'BatchDeleteItem', tables: { authors: [util.dynamodb.toMapValues({ authorId })], posts: [util.dynamodb.toMapValues({ authorId, postId })], }, }; }
ctx.result
で使用可能な呼び出し結果は以下のとおりです。
{ "data": { "authors": [null], "posts": [ // Was deleted { "authorId": "a1", "postId": "p2" } ] }, "unprocessedKeys": { "authors": [ // This key was not processed due to an error { "authorId": "a1" } ], "posts": [] } }
ctx.error
にエラーに関する詳細が含まれています。data キー、unprocessedKeys キー、および関数リクエストオブジェクトで渡された各テーブルキーは呼び出し結果に必ずあります。削除された項目は data ブロックにあります。処理されなかった項目は、data ブロック内で null としてマークされ、unprocessedKeys ブロックに挿入されます。