Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
TransactGetItems
Mit dem TransactGetItems
Anforderungsobjekt können Sie die AWS AppSync DynamoDB-Funktion anweisen, eine TransactGetItems
Anforderung an DynamoDB zu stellen, um mehrere Elemente abzurufen, möglicherweise über mehrere Tabellen hinweg. Für dieses Anforderungsobjekt müssen Sie Folgendes angeben:
-
Der Tabellenname jedes Anforderungselements, von dem das Element abgerufen werden soll
-
Der Schlüssel jedes Anforderungselements, das aus jeder Tabelle abgerufen werden soll
Es gelten die DynamoDB TransactGetItems
-Grenzwerte, und es kann kein Bedingungsausdruck bereitgestellt werden.
Das TransactGetItems
Anforderungsobjekt hat die folgende Struktur:
type DynamoDBTransactGetItemsRequest = { operation: 'TransactGetItems'; transactItems: { table: string; key: { [key: string]: any }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }[]; }; };
Die Felder sind wie folgt definiert:
TransactGetItems Felder
-
operation
-
Der DynamoDB DynamoDB-Vorgang. Um die
TransactGetItems
-DynamoDB-Operation durchzuführen, muss diese aufTransactGetItems
gesetzt sein. Dieser Wert ist erforderlich. -
transactItems
-
Die einzuschließenden Anforderungselemente. Der Wert ist ein Array von Anforderungselementen. Es muss mindestens ein Anforderungselement angegeben werden. Dieser
transactItems
-Wert ist erforderlich.-
table
-
Die DynamoDB-Tabelle, aus der das Element abgerufen werden soll. Der Wert ist eine Zeichenfolge des Tabellennamens. Dieser
table
-Wert ist erforderlich. -
key
-
Der DynamoDB-Schlüssel, der den Primärschlüssel des abzurufenden Elements darstellt. DynamoDB-Elemente können je nach Tabellenstruktur einen einzelnen Hashschlüssel oder einen Hashschlüssel und einen Sortierschlüssel haben. Weitere Informationen zur Angabe eines „typisierten Werts“ finden Sie unter Typsystem (Anforderungszuordnung).
projection
-
Eine Projektion, die verwendet wird, um die Attribute anzugeben, die von der DynamoDB-Operation zurückgegeben werden sollen. Weitere Informationen zu Projektionen finden Sie unter Projektionen. Dies ist ein optionales Feld.
-
Beachten Sie Folgendes:
-
Wenn eine Transaktion erfolgreich ist, entspricht die Reihenfolge der abgerufenen Elemente im
items
-Block der Reihenfolge der Anforderungselemente. -
Transaktionen werden in irgendeiner all-or-nothing Weise ausgeführt. Wenn ein Anforderungselement einen Fehler verursacht, wird die gesamte Transaktion nicht ausgeführt, und Fehlerdetails werden zurückgegeben.
-
Ein Anforderungselement, das nicht abgerufen werden kann, ist kein Fehler. Stattdessen erscheint ein Null-Element im Elemente-Block an der entsprechenden Position.
-
Wenn der Fehler einer Transaktion lautet TransactionCanceledException, wird der
cancellationReasons
Block aufgefüllt. Die Reihenfolge der Stornierungsgründe imcancellationReasons
-Block ist die gleiche wie die Reihenfolge der Anforderungselemente. -
TransactGetItems
ist auf 100 Anfrageelemente begrenzt.
Für das folgende Beispiel für einen Funktionsanforderungshandler:
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 }), }, ], }; }
Wenn die Transaktion erfolgreich ist und nur das erste angeforderte Element abgerufen wird, ist das Aufrufergebnis in ctx.result
wie folgt verfügbar:
{ "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 }
Wenn die Transaktion TransactionCanceledExceptionaufgrund des ersten Anforderungselements fehlschlägt, ctx.result
ist das Aufrufergebnis wie folgt verfügbar:
{ "items": null, "cancellationReasons": [ { "type":"Sample error type", "message":"Sample error message" }, { "type":"None", "message":"None" } ] }
ctx.error
enthält die Einzelheiten zu dem Fehler. Die Schlüssel-Elemente und Stornierungsgründe sind garantiert in ctx.result
vorhanden.