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.
BatchPutItem
Mit dem BatchPutItem
Anforderungsobjekt können Sie die AWS AppSync DynamoDB-Funktion anweisen, eine BatchWriteItem
Anforderung an DynamoDB zu stellen, um mehrere Elemente zu platzieren, möglicherweise in mehreren Tabellen. Für dieses Anforderungsobjekt müssen Sie Folgendes angeben:
-
Die Namen der Tabellen, in denen die Elemente abgelegt werden sollen.
-
Die vollständigen Elemente, die in jeder Tabelle abgelegt werden sollen
Es gelten die DynamoDB BatchWriteItem
-Grenzwerte, und es kann kein Bedingungsausdruck bereitgestellt werden.
Das BatchPutItem
Anforderungsobjekt hat die folgende Struktur:
type DynamoDBBatchPutItemRequest = { operation: 'BatchPutItem'; tables: { [tableName: string]: { [key: string]: any}[]; }; };
Die Felder sind wie folgt definiert:
BatchPutItem Felder
-
operation
-
Der DynamoDB DynamoDB-Vorgang. Um die
BatchPutItem
-DynamoDB-Operation durchzuführen, muss diese aufBatchPutItem
gesetzt sein. Dieser Wert ist erforderlich. -
tables
-
Die DynamoDB-Tabellen, in die die Elemente eingefügt werden sollen. Jeder Tabelleneintrag stellt eine Liste von DynamoDB-Elementen dar, die für diese spezifische Tabelle eingefügt werden sollen. Mindestens eine Tabelle muss angegeben werden. Dieser Wert ist erforderlich.
Beachten Sie Folgendes:
-
Bei Erfolg werden die vollständig eingefügten Elemente in der Antwort zurückgegeben.
-
Wenn ein Element nicht in die Tabelle eingefügt wurde, wird im Datenblock für diese Tabelle ein null-Element angezeigt.
-
Die eingefügten Elemente werden nach Tabelle sortiert, basierend auf der Reihenfolge, in der sie im Anforderungsobjekt bereitgestellt wurden.
-
Jeder
Put
Befehl innerhalb von aBatchPutItem
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. -
BatchPutItem
ist auf 25 Elemente 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 einen Funktionsanforderungshandler:
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId, name, title } = ctx.args; return { operation: 'BatchPutItem', tables: { authors: [util.dynamodb.toMapValues({ authorId, name })], posts: [util.dynamodb.toMapValues({ authorId, postId, title })], }, }; }
Das in ctx.result
verfügbare Aufrufergebnis sieht wie folgt aus:
{ "data": { "authors": [ null ], "posts": [ // Was inserted { "authorId": "a1", "postId": "p2", "title": "title" } ] }, "unprocessedItems": { "authors": [ // This item was not processed due to an error { "authorId": "a1", "name": "a1_name" } ], "posts": [] } }
ctx.error
enthält die Einzelheiten zu dem Fehler. Die Schlüssel data unprocessedItems, und jeder Tabellenschlüssel, der im Anforderungsobjekt bereitgestellt wurde, sind garantiert im Aufrufergebnis vorhanden. Elemente, die eingefügt wurden, befinden sich im Block data. Elemente, die nicht verarbeitet wurden, werden innerhalb des Datenblocks als Null markiert und innerhalb des unprocessedItemsBlocks platziert.