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.
BatchGetItem
Mit dem BatchGetItem
Anforderungsobjekt können Sie die AWS AppSync DynamoDB-Funktion anweisen, eine BatchGetItem
Anforderung an DynamoDB zu stellen, um mehrere Elemente abzurufen, möglicherweise über mehrere Tabellen hinweg. Für dieses Anforderungsobjekt müssen Sie Folgendes angeben:
-
Die Namen der Tabellen, aus denen die Elemente abgerufen werden sollen.
-
Die Schlüssel der Elemente, die aus den einzelnen Tabellen abgerufen werden sollen.
Es gelten die DynamoDB BatchGetItem
-Grenzwerte, und es kann kein Bedingungsausdruck bereitgestellt werden.
Das BatchGetItem
Anforderungsobjekt hat die folgende Struktur:
type DynamoDBBatchGetItemRequest = { operation: 'BatchGetItem'; tables: { [tableName: string]: { keys: { [key: string]: any }[]; consistentRead?: boolean; projection?: { expression: string; expressionNames?: { [key: string]: string }; }; }; }; };
Die Felder sind wie folgt definiert:
BatchGetItem Felder
-
operation
-
Der DynamoDB DynamoDB-Vorgang. Um die
BatchGetItem
-DynamoDB-Operation durchzuführen, muss diese aufBatchGetItem
gesetzt sein. Dieser Wert ist erforderlich. -
tables
-
Die DynamoDB-Tabellen, aus denen die Elemente abgerufen werden sollen. Der Wert ist eine Zuweisung, in der Tabellennamen als Schlüssel der Zuweisung angegeben werden. Mindestens eine Tabelle muss angegeben werden. Dieser
tables
-Wert ist erforderlich.-
keys
-
Liste der DynamoDB-Schlüssel, die den Primärschlüssel der abzurufenden Elemente darstellen. 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).
-
consistentRead
-
Ob bei der Ausführung eines GetItemVorgangs ein konsistenter Lesevorgang verwendet werden soll. Dieser Wert ist optional und ist standardmäßig false.
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 ein Element nicht aus der Tabelle abgerufen wurde, enthält der Datenblock für diese Tabelle ein null-Element.
-
Die Aufrufergebnisse werden nach Tabelle sortiert, basierend auf der Reihenfolge, in der sie innerhalb des Anforderungsobjekts bereitgestellt wurden.
-
Jeder
Get
Befehl innerhalb von aBatchGetItem
ist atomar, ein Batch kann jedoch teilweise verarbeitet werden. Wenn ein Stapel aufgrund eines Fehlers teilweise verarbeitet wird, werden die nicht verarbeiteten Schlüssel als Teil des Aufrufergebnisses im Block unprocessedKeys zurückgegeben. -
BatchGetItem
ist auf 100 Schlüssel beschränkt.
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: 'BatchGetItem', tables: { authors: [util.dynamodb.toMapValues({ authorId })], posts: [util.dynamodb.toMapValues({ authorId, postId })], }, }; }
Das in ctx.result
verfügbare Aufrufergebnis sieht wie folgt aus:
{ "data": { "authors": [null], "posts": [ // Was retrieved { "authorId": "a1", "postId": "p2", "postTitle": "title", "postDescription": "description", } ] }, "unprocessedKeys": { "authors": [ // This item was not processed due to an error { "authorId": "a1" } ], "posts": [] } }
ctx.error
enthält die Einzelheiten zu dem Fehler. Die Schlüssel data, unprocessedKeys und jeder Tabellenschlüssel, der im Ergebnis im Funktionsanforderungsobjekt bereitgestellt wurde, sind garantiert im Aufrufergebnis vorhanden. Elemente, die gelöscht wurden, befinden sich im Block data. Elemente, die nicht verarbeitet wurden, werden im Datenblock mit null markiert und im Block unprocessedKeys platziert.