As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
DeleteItem
A solicitação DeleteItem permite a você orientar a função do DynamoDB do AWS AppSync a realizar uma solicitação DeleteItem ao DynamoDB. Além disso, permite especificar:
-
A chave do item no DynamoDB
-
Condições para que a operação seja bem-sucedida
A solicitação DeleteItem tem a seguinte estrutura:
type DynamoDBDeleteItemRequest = { operation: 'DeleteItem'; key: { [key: string]: any }; condition?: ConditionCheckExpression; customPartitionKey?: string; populateIndexFields?: boolean; _version?: number; };
Os campos são definidos da seguinte forma:
Campos DeleteItem
-
operation -
A operação do DynamoDB para execução. Para executar a operação
DeleteItemdo DynamoDB, ela deve ser definida comoDeleteItem. Este valor é obrigatório. -
key -
A chave do item no DynamoDB. Os itens do DynamoDB podem ter uma única chave de hash ou uma chave de hash e uma chave de classificação, dependendo da estrutura da tabela. Para obter mais informações sobre como especificar um "valor digitado", consulte Sistema de tipo (mapeamento da solicitação). Este valor é obrigatório.
-
condition -
Uma condição para determinar se a solicitação deve ser bem-sucedida ou não, com base no estado do objeto que já está no DynamoDB. Se nenhuma condição for especificada, a solicitação
DeleteItemexcluirá um item independentemente do estado atual. Para obter mais informações sobre as condições, consulte Expressões de condição. Este valor é opcional. -
_version -
Um valor numérico que representa a versão conhecida mais recente de um item. Este valor é opcional. Esse campo é usado para Detecção de conflitos e só é compatível com fontes de dados versionadas.
customPartitionKey-
Quando ativado, esse valor de string modifica o formato dos registros
ds_pkeds_skusados pela tabela de sincronização delta quando o versionamento é ativado (para obter mais informações, consulte Detecção e sincronização de conflitos no Guia do desenvolvedor do AWS AppSync). Quando ativado, o processamento da entradapopulateIndexFieldstambém é ativado. Esse campo é opcional. populateIndexFields-
Um valor booleano que, quando ativado com
customPartitionKey, cria novas entradas para cada registro na tabela de sincronização delta, especificamente nas colunasgsi_ds_pkegsi_ds_sk. Para obter mais informações, consulte Detecção e sincronização de conflitos no Guia do desenvolvedor do AWS AppSync. Esse campo é opcional.
O item excluído do DynamoDB é automaticamente convertido nos tipos primitivos GraphQL e JSON e está disponível no resultado do contexto (context.result).
Para obter mais informações sobre a conversão de tipo do DynamoDB, consulte Sistema de tipo (mapeamento da resposta).
Para obter mais informações sobre resolvedores de JavaScript, consulte Visão geral de resolvedores de JavaScript.
Exemplo 1
O exemplo a seguir é um manipulador de solicitação de função para uma mutação GraphQL deleteItem(id: ID!): Se existir um item com esse ID, ele será excluído.
import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'DeleteItem', key: util.dynamodb.toMapValues({ id: ctx.args.id }), }; }
Exemplo 2
O exemplo a seguir é um manipulador de solicitação de função para uma mutação GraphQL deleteItem(id: ID!, expectedVersion: Int!): Se existir um item com esse ID, ele será excluído, mas apenas se o campo version estiver definido como 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), }; }
Para obter mais informações sobre a API DeleteItem do DynamoDB, consulte a Documentação da API do DynamoDB.