

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.

# TransactGetItems
<a name="js-aws-appsync-resolver-reference-dynamodb-transact-get-items"></a>

Mit dem `TransactGetItems` Anforderungsobjekt können Sie die AWS AppSync DynamoDB-Funktion anweisen, eine `TransactGetItems` Anforderung an DynamoDB zu stellen, um mehrere Elemente abzurufen, möglicherweise über mehrere Tabellen hinweg. Für dieses Anforderungsobjekt müssen Sie Folgendes angeben:
+ Der Tabellenname jedes Anforderungselements, von dem das Element abgerufen werden soll
+ Der Schlüssel jedes Anforderungselements, das aus jeder Tabelle abgerufen werden soll

Es gelten die DynamoDB `TransactGetItems`-Grenzwerte, und es kann **kein Bedingungsausdruck** bereitgestellt werden.

Das `TransactGetItems` Anforderungsobjekt hat die folgende Struktur:

```
type DynamoDBTransactGetItemsRequest = {
  operation: 'TransactGetItems';
  transactItems: { table: string; key: { [key: string]: any }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }[];
  };
};
```

Die Felder sind wie folgt definiert:

## TransactGetItems Felder
<a name="js-TransactGetItems-list"></a>

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

** `operation` **  
Der DynamoDB DynamoDB-Vorgang. Um die `TransactGetItems`-DynamoDB-Operation durchzuführen, muss diese auf `TransactGetItems` gesetzt sein. Dieser Wert ist erforderlich.

** `transactItems` **  
Die einzuschließenden Anforderungselemente. Der Wert ist ein Array von Anforderungselementen. Es muss mindestens ein Anforderungselement angegeben werden. Dieser `transactItems`-Wert ist erforderlich.    
** `table` **  
Die DynamoDB-Tabelle, aus der das Element abgerufen werden soll. Der Wert ist eine Zeichenfolge des Tabellennamens. Dieser `table`-Wert ist erforderlich.  
** `key` **  
Der DynamoDB-Schlüssel, der den Primärschlüssel des abzurufenden Elements darstellt. 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](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request)).  
**`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/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-projections) Dies ist ein optionales Feld.

Beachten Sie Folgendes:
+ Wenn eine Transaktion erfolgreich ist, entspricht die Reihenfolge der abgerufenen Elemente im `items`-Block der Reihenfolge der Anforderungselemente.
+ Transaktionen werden in irgendeiner all-or-nothing Weise ausgeführt. Wenn ein Anforderungselement einen Fehler verursacht, wird die gesamte Transaktion nicht ausgeführt, und Fehlerdetails werden zurückgegeben.
+ Ein Anforderungselement, das nicht abgerufen werden kann, ist kein Fehler. Stattdessen erscheint ein *Null*-Element im *Elemente*-Block an der entsprechenden Position.
+ Wenn der Fehler einer Transaktion lautet *TransactionCanceledException*, wird der `cancellationReasons` Block aufgefüllt. Die Reihenfolge der Stornierungsgründe im `cancellationReasons`-Block ist die gleiche wie die Reihenfolge der Anforderungselemente.
+  `TransactGetItems`ist auf 100 Anfrageelemente begrenzt.

Für das folgende Beispiel für einen Funktionsanforderungshandler:

```
import { util } from '@aws-appsync/utils';

export function request(ctx) {
  const { authorId, postId } = ctx.args;
  return {
    operation: 'TransactGetItems',
    transactItems: [
      {
        table: 'posts',
        key: util.dynamodb.toMapValues({ postId }),
      },
      {
        table: 'authors',
        key: util.dynamodb.toMapValues({ authorId }),
      },
    ],
  };
}
```

Wenn die Transaktion erfolgreich ist und nur das erste angeforderte Element abgerufen wird, ist das Aufrufergebnis in `ctx.result` wie folgt verfügbar:

```
{
    "items": [
       {
           // Attributes of the first requested item
           "post_id": "p1",
           "post_title": "title",
           "post_description": "description"
       },
       // Could not retrieve the second requested item
       null,
    ],
    "cancellationReasons": null
}
```

Wenn die Transaktion *TransactionCanceledException*aufgrund des ersten Anforderungselements fehlschlägt, `ctx.result` ist das Aufrufergebnis wie folgt verfügbar:

```
{
    "items": null,
    "cancellationReasons": [
       {
           "type":"Sample error type",
           "message":"Sample error message"
       },
       {
           "type":"None",
           "message":"None"
       }
    ]
}
```

`ctx.error` enthält die Einzelheiten zu dem Fehler. Die Schlüssel-**Elemente** und **Stornierungsgründe** sind garantiert in `ctx.result` vorhanden.