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

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 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 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