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
L'oggetto TransactGetItems
request consente di indicare alla funzione AWS AppSync DynamoDB di effettuare una TransactGetItems
richiesta a DynamoDB per recuperare più elementi, potenzialmente su più tabelle. Per questo oggetto 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.
L'oggetto della TransactGetItems
richiesta ha la seguente struttura:
type DynamoDBTransactGetItemsRequest = { operation: 'TransactGetItems'; transactItems: { table: string; key: { [key: string]: any }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }[]; }; };
I campi sono definiti come segue:
TransactGetItems campi
-
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 gestore di richieste di funzioni:
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'TransactGetItems', transactItems: [ { table: 'posts', key: util.dynamodb.toMapValues({ postId }), }, { table: 'authors', key: util.dynamodb.toMapValues({ authorId }), }, ], }; }
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