本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DeleteItem
该DeleteItem请求允许您告诉 D Amazon AppSync  ynamoDB 函数向 DynamoDB 发出DeleteItem请求,并允许您指定以下内容:
- 
            
DynamoDB 中的项目的键
 - 
            
操作成功执行的条件
 
DeleteItem 请求具有以下结构:
type DynamoDBDeleteItemRequest = { operation: 'DeleteItem'; key: { [key: string]: any }; condition?: ConditionCheckExpression; customPartitionKey?: string; populateIndexFields?: boolean; _version?: number; };
字段定义如下:
DeleteItem 字段
- 
                        
operation - 
                        
要执行的 DynamoDB 操作。要执行
DeleteItemDynamoDB 操作,该字段必须设置为DeleteItem。该值为必填项。 - 
                        
key - 
                        
DynamoDB 中的项目的键。DynamoDB 项目可能具有单个哈希键,也可能具有哈希键和排序键,具体取决于表结构。有关指定“类型化值”的更多信息,请参阅类型系统(请求映射)。该值为必填项。
 - 
                        
condition - 
                        
根据 DynamoDB 中已有的对象状态,确定请求是否应成功的条件。如果未指定条件,则
DeleteItem请求将删除项目,而不考虑其当前状态。有关条件的更多信息,请参阅条件表达式。该值为可选项。 - 
                        
_version - 
                        
表示项目的最新已知版本的数值。该值为可选项。该字段用于冲突检测,仅受版本控制的数据来源支持。
 customPartitionKey- 
                        
启用后,此字符串值将修改启用版本控制后增量同步表使用的
ds_sk和ds_pk记录的格式(有关更多信息,请参阅《Amazon AppSync 开发人员指南》中的冲突检测和同步)。如果启用,还会启用populateIndexFields条目处理。该字段是可选的。 populateIndexFields- 
                        
一个布尔值,在与
customPartitionKey一起启用时,它为增量同步表中的每个记录创建新条目,具体来说是在gsi_ds_pk和gsi_ds_sk列中创建新条目。有关更多信息,请参阅《Amazon AppSync 开发人员指南》中的冲突检测和同步。该字段是可选的。 
从 DynamoDB 中删除的项目自动转换为 GraphQL 和 JSON 基元类型,并在上下文结果 (context.result) 中提供。
有关 DynamoDB 类型转换的更多信息,请参阅类型系统(响应映射)。
有关 JavaScript 解析器的更多信息,请参阅解析JavaScript 器概述。
示例 1
以下示例是 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
以下示例是 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 文档。