

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# BatchDeleteItem
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-batch-delete-item"></a>

Il documento di mappatura delle `BatchDeleteItem` richieste consente di indicare al AWS AppSync resolver DynamoDB di effettuare una `BatchWriteItem` richiesta a DynamoDB per eliminare più elementi, potenzialmente su più tabelle. Per questo modello di richiesta, è necessario specificare quanto segue:
+ I nomi delle tabelle da cui eliminare le voci
+ Le chiavi delle voci da eliminare da ciascuna tabella

Si applicano i limiti `BatchWriteItem` di DynamoDB e non si può inserire **alcuna espressione di condizione**.

Il documento di mappatura `BatchDeleteItem` ha la seguente struttura:

```
{
    "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
        }],
    }
}
```

I campi sono definiti come segue:

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

### BatchDeleteItem elenco dei campi
<a name="BatchDeleteItem-list-col"></a>

** `version` **  
La versione di definizione del modello. Solo `2018-05-29`è supportata. Questo valore è obbligatorio.

** `operation` **  
L'operazione DynamoDB da eseguire. Per eseguire l'operazione `BatchDeleteItem` DynamoDB, il valore deve essere impostato su `BatchDeleteItem`. Questo valore è obbligatorio.

** `tables` **  
Le tabelle DynamoDB da cui eliminare gli elementi. Ogni tabella è un elenco di chiavi DynamoDB che rappresentano la chiave primaria degli elementi da eliminare. Gli elementi DynamoDB possono avere una sola chiave hash o una chiave hash e una chiave di ordinamento, a seconda della struttura della tabella. Per ulteriori informazioni su come specificare un «valore digitato», consulta [Sistema di tipi (mappatura delle richieste](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md)). Occorre specificare almeno una tabella. Il `tables` valore è obbligatorio.

Aspetti da ricordare:
+ A differenza dell'operazione `DeleteItem`, nella risposta non viene restituita la voce completamente eliminata. Viene restituita solo la chiave passata.
+ Se una voce non è stata eliminata dalla tabella, un elemento *null* compare nel blocco di dati relativo a quella tabella.
+ I risultati delle chiamate vengono ordinati per tabella, in base all'ordine in cui sono stati forniti all'interno del modello di mappatura della richiesta.
+ Ogni `Delete` comando all'interno di a è atomico. `BatchDeleteItem` Tuttavia, un batch può essere parzialmente elaborato. Se un batch viene elaborato parzialmente a causa di un errore, le chiavi non elaborate vengono restituite nell'ambito del risultato dell'invocazione all'interno del blocco *unprocessedKeys*.
+  `BatchDeleteItem` ha un limite di 25 chiavi.
+ Questa operazione **non è** supportata se utilizzata con il rilevamento dei conflitti. L'utilizzo di entrambi allo stesso tempo può causare un errore.

Per il seguente esempio di modello di mappatura della richiesta:

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

Il risultato dell'invocazione disponibile in `$ctx.result` è il seguente:

```
{
   "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": []
   }
}
```

Il messaggio `$ctx.error` contiene dettagli relativi all'errore. Le chiavi **dati**, **unprocessedKeys** e ogni chiave di tabella disponibile nel modello di mappatura della richiesta sono sicuramente presenti nel risultato dell'invocazione. Le voci eliminate sono presenti nel blocco di **dati**. Le voci non elaborate vengono contrassegnate come *null* all'interno del blocco dati e vengono inserite nel blocco **unprocessedKeys**.

Per un esempio più completo, segui il tutorial su DynamoDB Batch [con AppSync questo Tutorial: DynamoDB](tutorial-dynamodb-batch.md#aws-appsync-tutorial-dynamodb-batch) batch resolvers.