

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# DeleteItem
<a name="js-aws-appsync-resolver-reference-dynamodb-deleteitem"></a>

`DeleteItem` リクエストでは、 AWS AppSync DynamoDB 関数に DynamoDB への`DeleteItem`リクエストを行うように指示し、以下を指定できます。
+ DynamoDB の項目のキー
+ 処理が成功する条件

`DeleteItem` リクエストの構造は次のとおりです。

```
type DynamoDBDeleteItemRequest = {
  operation: 'DeleteItem';
  key: { [key: string]: any };
  condition?: ConditionCheckExpression;
  customPartitionKey?: string;
  populateIndexFields?: boolean;
  _version?: number;
};
```

各フィールドの定義は以下のようになります。

## DeleteItem フィールド
<a name="js-deleteitem-list"></a>

### DeleteItem フィールドリスト
<a name="js-deleteitem-list-col"></a>

** `operation` **  
実行する DynamoDB の処理。`DeleteItem` DynamoDB の処理を実行するには、これを `DeleteItem` に設定する必要があります。この値は必須です。

** `key` **  
DynamoDB の項目のキー。DynamoDB の項目には、単一のハッシュキー、またはハッシュキーとソートキーが含まれています。これはテーブルの構造によって変わります。「型付き値」を指定する方法の詳細については、「[型システム (リクエストマッピング)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request)」を参照してください。この値は必須です。

** `condition` **  
DynamoDB 内に既に存在するオブジェクトの状態に基づき、リクエストが成功するかどうかを判断する条件です。条件を指定していない場合、`DeleteItem` リクエストによって、現在の状態にかかわらず、項目が削除されます。条件の詳細については、「[条件式](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-condition-expressions)」を参照してください。この値はオプションです。

** `_version` **  
項目の既知の最新バージョンを表す数値。この値はオプションです。このフィールドは*競合の検出*に使用され、バージョン管理されたデータソースでのみサポートされます。

**`customPartitionKey`**  
有効にすると、この文字列値は、バージョニングが有効になっているときにデルタ同期テーブルで使用される `ds_sk` および `ds_pk` レコードの形式を変更します (詳細については、**「AWS AppSyncデベロッパーガイド」の「[競合検出と同期](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html)」を参照)。有効にすると、`populateIndexFields` エントリの処理も有効になります。このフィールドはオプションです。

**`populateIndexFields`**  
ブール値で、**`customPartitionKey` と一緒に有効にすると**、差分同期テーブル、具体的には `gsi_ds_pk` と `gsi_ds_sk` 列のレコードごとに新しいエントリが作成されます。詳細については、**「AWS AppSyncデベロッパーガイド」の「[競合検出と同期](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html)」を参照してください。このフィールドはオプションです。

DynamoDB から削除された項目が自動的に GraphQL プリミティブ型と JSON プリミティブ型に変換され、コンテキスト結果 (`context.result`) で参照できます。

DynamoDB の型変換の詳細については、「[型システム (リクエストマッピング)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-responses)」を参照してください。

JavaScript リゾルバーの詳細については、「[JavaScript リゾルバーの概要](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html)」を参照してください。

## 例 1
<a name="js-id6"></a>

次の例は、GraphQL ミューテーション `deleteItem(id: ID!)` の関数リクエストハンドラーです。この ID に対応する項目がある場合は、削除されます。

```
import { util } from '@aws-appsync/utils';
export function request(ctx) {
  return {
    operation: 'DeleteItem',
    key: util.dynamodb.toMapValues({ id: ctx.args.id }),
  };
}
```

## 例 2
<a name="js-id7"></a>

次の例は、GraphQL ミューテーション `deleteItem(id: ID!, expectedVersion: Int!)` の関数リクエストハンドラーです。この ID に対応する項目がある場合は、その `version` フィールドに `expectedVersion` が設定されているときにのみ削除されます。

```
import { util } from '@aws-appsync/utils';

export function request(ctx) {
  const { id, expectedVersion } = ctx.args;
  const condition = {
    id: { attributeExists: true },
    version: { eq: expectedVersion },
  };
  return {
    operation: 'DeleteItem',
    key: util.dynamodb.toMapValues({ id }),
    condition: util.transform.toDynamoDBConditionExpression(condition),
  };
}
```

DynamoDB `DeleteItem` API の詳細については、「[DynamoDB API のドキュメント](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)」を参照してください。