

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
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-batch-put-item"></a>

Mit dem `BatchPutItem` Anforderungszuordnungsdokument können Sie den AWS AppSync DynamoDB-Resolver anweisen, eine `BatchWriteItem` Anforderung an DynamoDB zu stellen, um mehrere Elemente zu platzieren, möglicherweise in mehreren Tabellen. Für diese Anforderungsvorlage 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`-Zuweisungsdokument weist die folgende Struktur auf:

```
{
    "version" : "2018-05-29",
    "operation" : "BatchPutItem",
    "tables" : {
        "table1": [
        ## Item to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item2 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
        "table2": [
        ## Item3 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item4 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
    }
}
```

Die Felder sind wie folgt definiert:

## BatchPutItem Felder
<a name="BatchPutItem-list"></a>

### BatchPutItem Liste der Felder
<a name="BatchPutItem-list-col"></a>

** `version` **  
Die Version der Vorlagendefinition. Nur `2018-05-29` wird unterstützt. Dieser Wert ist erforderlich.

** `operation` **  
Der DynamoDB DynamoDB-Vorgang. Um die `BatchPutItem`-DynamoDB-Operation durchzuführen, muss diese auf `BatchPutItem` 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 spezielle 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 in der Anforderungszuordnungsvorlage bereitgestellt wurden.
+ Jeder `Put` Befehl in a `BatchPutItem` 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.
+  `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 eine Anforderungszuweisungsvorlage gilt:

```
{
  "version": "2018-05-29",
  "operation": "BatchPutItem",
  "tables": {
    "authors": [
        {
          "author_id": {
            "S": "a1"
          },
          "author_name": {
            "S": "a1_name"
          }
        },
    ],
    "posts": [
        {
          "author_id": {
            "S": "a1"
          },
          "post_id": {
            "S": "p2"
          },
          "post_title": {
            "S": "title"
          }
        }
    ],
  }
}
```

Das in `$ctx.result` verfügbare Aufrufergebnis sieht wie folgt aus:

```
{
   "data": {
     "authors": [
         null
     ],
     "posts": [
        # Was inserted
        {
          "author_id": "a1",
          "post_id": "p2",
          "post_title": "title"
        }
     ]
   },
   "unprocessedItems": {
     "authors": [
        # This item was not processed due to an error
        {
          "author_id": "a1",
          "author_name": "a1_name"
        }
      ],
     "posts": []
   }
}
```

`$ctx.error` enthält die Einzelheiten zu dem Fehler. Die Schlüssel **data**, **unprocessedItems** sowie die einzelnen Tabellenschlüssel, die in der Zuweisungsvorlage für die Anforderung bereitgestellt wurden, sind garantiert im Aufrufergebnis vorhanden. Elemente, die eingefügt wurden, befinden sich im Block **data**. Elemente, die nicht verarbeitet wurden, werden im Datenblock mit *null* markiert und im Block **unprocessedItems** platziert.

Ein vollständigeres Beispiel AppSync finden Sie im DynamoDB Batch-Tutorial mit diesem [Tutorial: DynamoDB-Batch-Resolver](tutorial-dynamodb-batch.md#aws-appsync-tutorial-dynamodb-batch).