TransactGetItems - AWS AppSync GraphQL

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 auf TransactGetItems 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 im cancellationReasons-Block ist die gleiche wie die Reihenfolge der Anforderungselemente.

  • TransactGetItemsist 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.