BatchDeleteItem - AWS AppSync

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á.

BatchDeleteItem

O objeto de BatchDeleteItem solicitação permite que você peça à função do AWS AppSync DynamoDB que faça uma BatchWriteItem solicitação ao DynamoDB para excluir vários itens, potencialmente em várias tabelas. Para esse objeto de solicitação, você deve especificar o seguinte:

  • Os nomes da tabela da qual excluir os itens

  • As chaves dos itens a serem excluídas de cada tabela

Os limites BatchWriteItem do DynamoDB se aplicam e nenhuma expressão de condição pode ser fornecida.

O objeto de solicitação BatchDeleteItem tem a seguinte estrutura:

type DynamoDBBatchDeleteItemRequest = { operation: 'BatchDeleteItem'; tables: { [tableName: string]: { [key: string]: any }[]; }; };

Os campos são definidos da seguinte forma:

BatchDeleteItem campos

operation

A operação do DynamoDB para execução. Para executar a operação BatchDeleteItem do DynamoDB, ela deve ser definida como BatchDeleteItem. Este valor é obrigatório.

tables

As tabelas do DynamoDB das quais excluir os itens. Cada tabela é uma lista de chaves do DynamoDB representando a chave primária dos itens a serem excluídos. 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 de solicitação). Pelo menos uma tabela deve ser fornecida. O valor tables é obrigatório.

Informações importantes:

  • Ao contrário da operação DeleteItem, o item totalmente excluído não é retornado na resposta. Somente a chave passada é retornada.

  • Se um item não tiver sido excluído da tabela, um elemento nulo aparecerá no bloco de dados dessa tabela.

  • Os resultados de invocação são classificados por tabela, com base na ordem em que foram fornecidos dentro do objeto de solicitação.

  • Cada comando Delete dentro de um BatchDeleteItem é atômico. No entanto, um lote pode ser parcialmente processado. Se um lote for parcialmente processado devido a um erro, as chaves não processadas serão retornadas como parte do resultado da invocação dentro do bloco. unprocessedKeys

  • O BatchDeleteItem é limitado a 25 chaves.

  • Essa operação não é suportada quando usada com detecção de conflitos. Usar os dois ao mesmo tempo pode resultar em um erro.

Veja a seguir um exemplo de manipulador de solicitação de função:

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 })], }, }; }

O resultado de invocação disponível em ctx.result é o seguinte:

{ "data": { "authors": [null], "posts": [ // Was deleted { "authorId": "a1", "postId": "p2" } ] }, "unprocessedKeys": { "authors": [ // This key was not processed due to an error { "authorId": "a1" } ], "posts": [] } }

O ctx.error contém detalhes sobre o erro. É garantido que as chaves unprocessedKeys, dados e cada chave de tabela fornecida no objeto de solicitação de função estejam presentes no resultado da invocação. Os itens que foram excluídos estão presentes no bloco data. Os itens que não foram processados são marcados como nulos dentro do bloco de dados e colocados dentro do unprocessedKeysbloco.