

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

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
<a name="BatchGetItem-list"></a>

### BatchGetItem Liste der Felder
<a name="BatchGetItem-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 `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](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md)).  
** `consistentRead` **  
Ob bei der Ausführung eines *GetItem*Vorgangs 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.](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-projections) 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 Stapel aufgrund eines Fehlers teilweise verarbeitet wird, werden die nicht verarbeiteten Schlüssel als Teil des Aufrufergebnisses im Block *unprocessedKeys* 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 **data**, **unprocessedKeys** sowie die einzelnen Tabellenschlüssel, die in der Zuweisungsvorlage für die Anforderung bereitgestellt wurden, sind garantiert im Aufrufergebnis vorhanden. Elemente, die gelöscht wurden, befinden sich im Block **data**. Elemente, die nicht verarbeitet wurden, werden im Datenblock mit *null* markiert und im Block **unprocessedKeys** 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).