

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.

# Ausdrücke für Transaktionsbedingungen
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-transaction-condition-expressions"></a>

Transaktionsbedingungsausdrücke sind in Anforderungszuweisungsvorlagen aller vier Arten von Operationen in `TransactWriteItems`, nämlich `PutItem`, `DeleteItem`, `UpdateItem` und `ConditionCheck` verfügbar.

Für `PutItem` `DeleteItem``UpdateItem`, und ist der Ausdruck für die Transaktionsbedingung optional. Für `ConditionCheck` ist der Ausdruck der Transaktionsbedingung erforderlich.

## Beispiel 1
<a name="id22"></a>

Das folgende `DeleteItem`-Transaktionszuweisungsdokument weist keinen Bedingungsausdruck auf. Infolgedessen wird das Element in DynamoDB gelöscht.

```
{
   "version": "2018-05-29",
   "operation": "TransactWriteItems",
   "transactItems": [
      {
         "table": "posts",
         "operation": "DeleteItem",
         "key": {
            "id": { "S" : "1" }
         }
      }
   ]
}
```

## Beispiel 2
<a name="id23"></a>

Das folgende `DeleteItem` Transaktions-Mapping-Dokument enthält einen Ausdruck für eine Transaktionsbedingung, mit dem der Vorgang nur dann erfolgreich ausgeführt werden kann, wenn der Autor dieses Beitrags einem bestimmten Namen entspricht.

```
{
   "version": "2018-05-29",
   "operation": "TransactWriteItems",
   "transactItems": [
      {
         "table": "posts",
         "operation": "DeleteItem",
         "key": {
            "id": { "S" : "1" }
         }
         "condition": {
            "expression": "author = :author",
            "expressionValues": {
               ":author": { "S" : "Chunyan" }
            }
         }
      }
   ]
}
```

Wenn die Bedingungsprüfung fehlschlägt, führt dies zu `TransactionCanceledException`, und die Fehlerdetails werden in `$ctx.result.cancellationReasons` zurückgegeben. Beachten Sie, dass standardmäßig das alte Element in DynamoDB zurückgegeben wird, bei dem die Zustandsprüfung fehlgeschlagen ist. `$ctx.result.cancellationReasons`

## Angabe einer Bedingung
<a name="id24"></a>

Die Zuweisungsdokumente der `PutItem`- `UpdateItem`- und `DeleteItem`-Anforderung erlauben das Angeben eines optionalen `condition`-Abschnitts. Wenn nicht angegeben, wird keine Bedingungsprüfung ausgeführt. Wenn angegeben, muss die Bedingung wahr sein, damit die Operation erfolgreich ausgeführt werden kann. Der `ConditionCheck` muss einen `condition`-Abschnitt haben, der angegeben werden soll. Die Bedingung muss erfüllt sein, damit die gesamte Transaktion erfolgreich ist.

Ein `condition`-Abschnitt weist die folgende Struktur auf:

```
"condition": {
    "expression": "someExpression",
    "expressionNames": {
        "#foo": "foo"
    },
    "expressionValues": {
        ":bar": ... typed value
    },
    "returnValuesOnConditionCheckFailure": false
}
```

Die folgenden Felder geben die Bedingung an:

** `expression` **  
Der Aktualisierungsausdruck selbst. Weitere Informationen zum Schreiben von Bedingungsausdrücken finden Sie in der [DynamoDB-Dokumentation ConditionExpressions ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html). Dieses Feld muss angegeben werden.

** `expressionNames` **  
Die Ersetzungen für Platzhalter für Ausdrucksattributnamen in der Form von Schlüssel-Wert-Paaren. Der Schlüssel entspricht einem Namensplatzhalter, der im *Ausdruck* verwendet wird, und der Wert muss eine Zeichenfolge sein, die dem Attributnamen des Elements in DynamoDB entspricht. Dieses Feld ist optional und sollte nur mit Ersetzungen für Platzhalter der Namen von Ausdrucksattributen gefüllt sein, die im *Ausdruck* verwendet werden.

** `expressionValues` **  
Die Ersetzungen für Platzhalter der Werte von Ausdrucksattributen in Form von Schlüssel-Wert-Paaren. Der Schlüssel entspricht einem Wertplatzhalter, der im Ausdruck verwendet wird, und der Wert muss ein typisierter Wert sein. Weitere Informationen zum Angeben eines „typisierten Werts“ finden Sie unter „Typsystem (Anforderungszuweisung)“. Dieser muss angegeben werden. Dieses Feld ist optional und sollte nur mit Ersetzungen für Platzhalter der Werte von Ausdrucksattributen gefüllt sein, die im Ausdruck verwendet werden.

** `returnValuesOnConditionCheckFailure` **  
Geben Sie an, ob das Element in DynamoDB zurückgeholt werden soll, wenn eine Zustandsprüfung fehlschlägt. Das abgerufene Element befindet sich in `$ctx.result.cancellationReasons[$index].item`, wobei der `$index` Index des Anforderungselements ist, durch das die Bedingungsprüfung fehlgeschlagen ist. Dieser Wert ist standardmäßig auf true gesetzt.