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à.
TransactGetItems
Il documento di mappatura delle TransactGetItems
richieste consente di indicare al AWS AppSync resolver DynamoDB di effettuare una TransactGetItems
richiesta a DynamoDB per recuperare più elementi, potenzialmente su più tabelle. Per questo modello di richiesta, è necessario specificare quanto segue:
-
Il nome della tabella di ogni elemento di richiesta da cui recuperare l'elemento
-
La chiave di ogni elemento di richiesta da recuperare da ogni tabella
Si applicano i limiti TransactGetItems
di DynamoDB e non si può inserire alcuna espressione di condizione.
Il documento di mappatura TransactGetItems
ha la seguente struttura:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "table1", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } }, ## Second request item { "table": "table2", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } } ] }
I campi sono definiti come segue:
TransactGetItems 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
TransactGetItems
DynamoDB, il valore deve essere impostato suTransactGetItems
. Questo valore è obbligatorio. -
transactItems
-
Gli elementi di richiesta da includere. Il valore è un array di elementi di richiesta. Deve essere fornito almeno un elemento di richiesta. Questo valore
transactItems
è obbligatorio.-
table
-
La tabella DynamoDB da cui recuperare l'elemento. Il valore è una stringa del nome della tabella. Questo valore
table
è obbligatorio. -
key
-
La chiave DynamoDB che rappresenta la chiave primaria dell'elemento 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).
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 transazione ha esito positivo, l'ordine degli elementi recuperati nel blocco
items
sarà lo stesso dell'ordine degli elementi della richiesta. -
Le transazioni vengono eseguite in qualche modo. all-or-nothing Se un elemento di richiesta causa un errore, l'intera transazione non viene eseguita e vengono restituiti i dettagli dell'errore.
-
Un elemento di richiesta che non può essere recuperato non è un errore. Invece, un elemento null appare nel blocco elementi nella posizione corrispondente.
-
Se l'errore di una transazione è TransactionCanceledException, il
cancellationReasons
blocco verrà popolato. L'ordine dei motivi di annullamento nel bloccocancellationReasons
è lo stesso dell'ordine degli elementi della richiesta. -
TransactGetItems
è limitato a 100 articoli richiesti.
Per il seguente esempio di modello di mappatura della richiesta:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "posts", "key": { "post_id": { "S": "p1" } } }, ## Second request item { "table": "authors", "key": { "author_id": { "S": a1 } } } ] }
Se la transazione ha esito positivo e viene recuperato solo il primo elemento richiesto, il risultato della chiamata disponibile $ctx.result
è il seguente:
{ "items": [ { // Attributes of the first requested item "post_id": "p1", "post_title": "title", "post_description": "description" }, // Could not retrieve the second requested item null, ], "cancellationReasons": null }
Se la transazione fallisce a TransactionCanceledExceptioncausa del primo elemento della richiesta, il risultato della chiamata disponibile in $ctx.result
è il seguente:
{ "items": null, "cancellationReasons": [ { "type":"Sample error type", "message":"Sample error message" }, { "type":"None", "message":"None" } ] }
Il messaggio $ctx.error
contiene dettagli relativi all'errore. È garantito che gli elementi chiave cancellationReasonssiano presenti in. $ctx.result
Per un esempio più completo, segui il tutorial sulle transazioni di DynamoDB AppSync con questo Tutorial: risolutori di transazioni DynamoDB.