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.
BatchDeleteItem
Mit dem BatchDeleteItem
Anforderungszuordnungsdokument können Sie den AWS AppSync DynamoDB-Resolver anweisen, eine BatchWriteItem
Anforderung an DynamoDB zu stellen, um mehrere Elemente zu löschen, möglicherweise über mehrere Tabellen hinweg. Für diese Anforderungsvorlage müssen Sie Folgendes angeben:
-
Die Namen der Tabellen, aus denen die Elemente gelöscht werden sollen.
-
Die Schlüssel der Elemente, die aus den einzelnen Tabellen gelöscht werden sollen.
Es gelten die DynamoDB BatchWriteItem
-Grenzwerte, und es kann kein Bedingungsausdruck bereitgestellt werden.
Das BatchDeleteItem
-Zuweisungsdokument weist die folgende Struktur auf:
{ "version" : "2018-05-29", "operation" : "BatchDeleteItem", "tables" : { "table1": [ ## Item to delete Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to delete Key { "foo" : ... typed value, "bar" : ... typed value }], "table2": [ ## Item3 to delete Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to delete Key { "foo" : ... typed value, "bar" : ... typed value }], } }
Die Felder sind wie folgt definiert:
BatchDeleteItem Felder
-
version
-
Die Version der Vorlagendefinition. Nur
2018-05-29
wird unterstützt. Dieser Wert ist erforderlich. -
operation
-
Der DynamoDB DynamoDB-Vorgang. Um die
BatchDeleteItem
-DynamoDB-Operation durchzuführen, muss diese aufBatchDeleteItem
gesetzt sein. Dieser Wert ist erforderlich. -
tables
-
Die DynamoDB-Tabellen, aus denen die Elemente gelöscht werden sollen. Jede Tabelle ist eine Liste von DynamoDB-Schlüsseln, die den Primärschlüssel der zu löschenden 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). Mindestens eine Tabelle muss angegeben werden. Der
tables
Wert ist erforderlich.
Beachten Sie Folgendes:
-
Im Gegensatz zum
DeleteItem
-Vorgang wird nicht das vollständig gelöschte Element in der Antwort zurückgegeben. Nur der übergebene Schlüssel wird zurückgegeben. -
Wenn ein Element nicht aus der Tabelle gelöscht 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
Delete
Befehl in aBatchDeleteItem
ist atomar. Ein Stapel 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. -
BatchDeleteItem
ist auf 25 Schlüssel beschränkt. -
Dieser Vorgang wird nicht unterstützt, wenn er zusammen mit der Konflikterkennung verwendet wird. Wenn Sie beide gleichzeitig verwenden, kann dies zu einem Fehler führen.
Für das folgende Beispiel für eine Anforderungszuweisungsvorlage gilt:
{ "version": "2018-05-29", "operation": "BatchDeleteItem", "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 deleted { "author_id": "a1", "post_id": "p2" } ] }, "unprocessedKeys": { "authors": [ # This key was not processed due to an error { "author_id": "a1" } ], "posts": [] } }
$ctx.error
enthält die Einzelheiten zu dem Fehler. Die Schlüssel unprocessedKeys, Daten und alle Tabellenschlüssel, 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.