

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
<a name="js-aws-appsync-resolver-reference-dynamodb-batch-delete-item"></a>

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
<a name="js-BatchDeleteItem-list"></a>

### BatchDeleteItem lista de campos
<a name="js-BatchDeleteItem-list-col"></a>

** `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)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request). 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 chamada dentro do bloco *unprocessedKeys*.
+  O `BatchDeleteItem` é limitado a 25 chaves.
+ Essa operação **não é** compatível quando usada com detecção de conflitos. Usar ambos ao mesmo tempo pode gerar 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. As chaves **data**, **unprocessedKeys** e todas as chaves de tabela fornecidas no objeto de solicitação de função estão presentes no resultado da invocação. Os itens que foram excluídos estão presentes no bloco **data**. Itens que não foram processados são marcados como *nulos* no bloco de dados e colocados dentro do bloco **unprocessedKeys**.