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

BatchGetItem

Il documento di mappatura delle BatchGetItem richieste consente di indicare al AWS AppSync resolver DynamoDB di effettuare una BatchGetItem richiesta a DynamoDB per recuperare più elementi, potenzialmente su più tabelle. Per questo modello di richiesta, è necessario specificare quanto segue:

  • I nomi delle tabelle da cui recuperare le voci

  • Le chiavi delle voci da recuperare da ciascuna tabella

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

Il documento di mappatura BatchGetItem ha la seguente struttura:

{ "version" : "2018-05-29", "operation" : "BatchGetItem", "tables" : { "table1": { "keys": [ ## Item to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } }, "table2": { "keys": [ ## Item3 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } } } }

I campi sono definiti come segue:

BatchGetItem campi

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 BatchGetItem DynamoDB, il valore deve essere impostato su BatchGetItem. Questo valore è obbligatorio.

tables

Le tabelle DynamoDB da cui recuperare gli elementi. Il valore è una mappa in cui i nomi delle tabelle sono specificati come chiavi della mappa. Occorre specificare almeno una tabella. Questo valore tables è obbligatorio.

keys

Elenco di chiavi DynamoDB che rappresentano la chiave primaria degli elementi da recuperare. 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).

consistentRead

Se utilizzare una lettura coerente durante l'esecuzione di un'GetItemoperazione. Questo valore è opzionale e l'impostazione predefinita è false.

projection

Una proiezione utilizzata per specificare gli attributi da restituire dall'operazione DynamoDB. Per ulteriori informazioni sulle proiezioni, vedere Proiezioni. Questo campo è facoltativo.

Aspetti da ricordare:

  • Se una voce non è stata recuperata 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 Get comando all'interno di a BatchGetItem è 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

  • BatchGetItem ha un limite di 100 chiavi.

Per il seguente esempio di modello di mappatura della richiesta:

{ "version": "2018-05-29", "operation": "BatchGetItem", "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 retrieved { "author_id": "a1", "post_id": "p2", "post_title": "title", "post_description": "description", } ] }, "unprocessedKeys": { "authors": [ # This item was not processed due to an error { "author_id": "a1" } ], "posts": [] } }

Il messaggio $ctx.error contiene dettagli relativi all'errore. È garantito che i unprocessedKeysdati delle chiavi e ogni chiave di tabella forniti nel modello di mappatura della richiesta siano presenti nel risultato della chiamata. Le voci eliminate compaiono nel blocco 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

Per un esempio più completo, segui il tutorial su DynamoDB Batch con AppSync questo Tutorial: DynamoDB batch resolvers.