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
Anforderungszuordnungsdokument können Sie den AWS AppSync DynamoDB-Resolver anweisen, eine BatchGetItem
Anforderung an DynamoDB zu stellen, um mehrere Elemente abzurufen, möglicherweise über mehrere Tabellen hinweg. Für diese Anforderungsvorlage 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
-Zuweisungsdokument weist die folgende Struktur auf:
{ "version" : "2018-05-29", "operation" : "BatchGetItem", "tables" : { "table1": { "keys": [ ## Item to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } }, "table2": { "keys": [ ## Item3 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } } } }
Die Felder sind wie folgt definiert:
BatchGetItem Felder
-
version
-
Die Version der Vorlagendefinition. Nur
2018-05-29
wird unterstützt. Dieser Wert ist erforderlich. -
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 in der Vorlage für die Anforderungszuweisung bereitgestellt wurden.
-
Jeder
Get
Befehl in aBatchGetItem
ist atomar, ein Batch kann jedoch teilweise verarbeitet werden. Wenn ein Batch aufgrund eines Fehlers teilweise verarbeitet wird, werden die unverarbeiteten Schlüssel als Teil des Aufrufergebnisses innerhalb des unprocessedKeysBlocks zurückgegeben. -
BatchGetItem
ist auf 100 Schlüssel beschränkt.
Für das folgende Beispiel für eine Anforderungszuweisungsvorlage gilt:
{ "version": "2018-05-29", "operation": "BatchGetItem", "tables": { "authors": [ { "author_id": { "S": "a1" } }, ], "posts": [ { "author_id": { "S": "a1" }, "post_id": { "S": "p2" } } ], } }
Das in $ctx.result
verfügbare Aufrufergebnis sieht wie folgt aus:
{ "data": { "authors": [null], "posts": [ # Was retrieved { "author_id": "a1", "post_id": "p2", "post_title": "title", "post_description": "description", } ] }, "unprocessedKeys": { "authors": [ # This item was not processed due to an error { "author_id": "a1" } ], "posts": [] } }
$ctx.error
enthält die Einzelheiten zu dem Fehler. Die Schlüssel, Daten und alle Tabellenschlüssel unprocessedKeys, die in der Vorlage für die Anforderungszuweisung bereitgestellt wurden, sind garantiert im Aufrufergebnis enthalten. Elemente, die gelöscht wurden, befinden sich im Block data. Elemente, die nicht verarbeitet wurden, werden innerhalb des Datenblocks als Null markiert und innerhalb des unprocessedKeysBlocks platziert.
Ein vollständigeres Beispiel AppSync finden Sie im DynamoDB Batch-Tutorial mit diesem Tutorial: DynamoDB-Batch-Resolver.