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

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 su TransactGetItems. 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 blocco cancellationReasons è 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.