BatchPutItem - 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à.

BatchPutItem

L'oggetto BatchPutItem request consente di indicare alla funzione AWS AppSync DynamoDB di effettuare una BatchWriteItem richiesta a DynamoDB per inserire più elementi, potenzialmente su più tabelle. Per questo oggetto di richiesta, è necessario specificare quanto segue:

  • I nomi delle tabelle in cui inserire le voci

  • Le voci complete da inserire in ciascuna tabella

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

L'oggetto della BatchPutItem richiesta ha la seguente struttura:

type DynamoDBBatchPutItemRequest = { operation: 'BatchPutItem'; tables: { [tableName: string]: { [key: string]: any}[]; }; };

I campi sono definiti come segue:

BatchPutItem campi

operation

L'operazione DynamoDB da eseguire. Per eseguire l'operazione BatchPutItem DynamoDB, il valore deve essere impostato su BatchPutItem. Questo valore è obbligatorio.

tables

Le tabelle DynamoDB in cui inserire gli elementi. Ogni voce della tabella rappresenta un elenco di elementi DynamoDB da inserire per questa tabella specifica. Occorre specificare almeno una tabella. Questo valore è obbligatorio.

Aspetti da ricordare:

  • Se l'operazione va a buon fine, nella risposta vengono restituite le voci inserite completamente.

  • Se una voce non è stata inserita nella tabella, un elemento null viene visualizzato nel blocco di dati relativo a quella tabella.

  • Gli elementi inseriti vengono ordinati per tabella, in base all'ordine in cui sono stati forniti all'interno dell'oggetto della richiesta.

  • Ogni Put comando all'interno di a BatchPutItem è atomico, 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 della chiamata all'interno del blocco. unprocessedKeys

  • BatchPutItem ha un limite di 25 voci.

  • 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, name, title } = ctx.args; return { operation: 'BatchPutItem', tables: { authors: [util.dynamodb.toMapValues({ authorId, name })], posts: [util.dynamodb.toMapValues({ authorId, postId, title })], }, }; }

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

{ "data": { "authors": [ null ], "posts": [ // Was inserted { "authorId": "a1", "postId": "p2", "title": "title" } ] }, "unprocessedItems": { "authors": [ // This item was not processed due to an error { "authorId": "a1", "name": "a1_name" } ], "posts": [] } }

Il messaggio ctx.error contiene dettagli relativi all'errore. È garantito che unprocessedItemsi dati delle chiavi e ogni chiave della tabella forniti nell'oggetto di richiesta siano presenti nel risultato della chiamata. Le voci inserite si trovano 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. unprocessedItems