BatchGetItem - AWS AppSync

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 auf BatchGetItem 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 a BatchGetItem 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.