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 suBatchGetItem
. 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 aBatchGetItem
è 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.