BatchDeleteItem - AWS AppSync

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

L'oggetto BatchDeleteItem request consente di indicare alla funzione AWS AppSync DynamoDB di effettuare una BatchWriteItem richiesta a DynamoDB per eliminare più elementi, potenzialmente su più tabelle. Per questo oggetto 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.

L'oggetto della BatchDeleteItem richiesta ha la seguente struttura:

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

I campi sono definiti come segue:

BatchDeleteItem campi

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). 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 della chiamata vengono ordinati per tabella, in base all'ordine in cui sono stati forniti all'interno dell'oggetto della richiesta.

  • Ogni Delete comando all'interno di a è atomicoBatchDeleteItem. Tuttavia, un batch può essere parzialmente elaborato. Se un batch viene parzialmente elaborato a causa di un errore, le chiavi non elaborate vengono restituite come parte 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 gestore di richieste di funzioni:

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

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

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

Il messaggio ctx.error contiene dettagli relativi all'errore. È garantito che unprocessedKeysi dati delle chiavi e ogni chiave della tabella forniti nell'oggetto di richiesta della funzione siano presenti nel risultato della chiamata. Le voci eliminate sono presenti nel blocco di dati. Gli elementi che non sono stati elaborati sono contrassegnati come nulli all'interno del blocco di dati e inseriti all'interno del blocco. unprocessedKeys