

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

O documento de mapeamento de `BatchDeleteItem` solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma `BatchWriteItem` solicitação ao DynamoDB para excluir vários itens, potencialmente em várias tabelas. Para esse modelo 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 documento de mapeamento `BatchDeleteItem` possui a seguinte estrutura:

```
{
    "version" : "2018-05-29",
    "operation" : "BatchDeleteItem",
    "tables" : {
        "table1": [
        ## Item to delete Key
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item2 to delete Key
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
        "table2": [
        ## Item3 to delete Key
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item4 to delete Key
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
    }
}
```

Os campos são definidos da seguinte forma:

## BatchDeleteItem campos
<a name="BatchDeleteItem-list"></a>

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

** `version` **  
A versão de definição do modelo. Somente `2018-05-29` é suportado. Este valor é obrigatório.

** `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)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md). 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 modelo de mapeamento 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.

Para o seguinte exemplo do modelo de mapeamento de solicitação:

```
{
  "version": "2018-05-29",
  "operation": "BatchDeleteItem",
  "tables": {
    "authors": [
        {
          "author_id": {
            "S": "a1"
          }
        },
    ],
    "posts": [
        {
          "author_id": {
            "S": "a1"
          },
          "post_id": {
            "S": "p2"
          }
        }
    ],
  }
}
```

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

```
{
   "data": {
     "authors": [null],
     "posts": [
        # Was deleted
        {
          "author_id": "a1",
          "post_id": "p2"
        }
     ]
   },
   "unprocessedKeys": {
     "authors": [
        # This key was not processed due to an error
        {
          "author_id": "a1"
        }
      ],
     "posts": []
   }
}
```

O `$ctx.error` contém detalhes sobre o erro. As chaves **data**, **unprocessedKeys** e todas as chaves de tabela fornecidas no modelo de mapeamento de solicitaçã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**.

Para obter um exemplo mais completo, siga o tutorial do DynamoDB Batch aqui AppSync Tutorial[: resolvedores de lotes do DynamoDB](tutorial-dynamodb-batch.md#aws-appsync-tutorial-dynamodb-batch).