

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.

# PutItem
<a name="js-aws-appsync-resolver-reference-dynamodb-putitem"></a>

Mit dem `PutItem` Anforderungszuordnungsdokument können Sie die AWS AppSync DynamoDB-Funktion anweisen, eine `PutItem` Anfrage an DynamoDB zu stellen, und Sie können Folgendes angeben:
+ Der Schlüssel des Elements in DynamoDB
+ Der vollständige Inhalt des Elements (bestehend aus `key` und `attributeValues`)
+ Bedingungen, damit die Operation erfolgreich ausgeführt werden kann

Die `PutItem` Anfrage hat die folgende Struktur:

```
type DynamoDBPutItemRequest = {
  operation: 'PutItem';
  key: { [key: string]: any };
  attributeValues: { [key: string]: any};
  condition?: ConditionCheckExpression;
  customPartitionKey?: string;
  populateIndexFields?: boolean;
  _version?: number;
};
```

Die Felder sind wie folgt definiert:

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

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

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

 **`key`**   
Der Schlüssel des Elements in DynamoDB. 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)). Dieser Wert ist erforderlich.

 **`attributeValues`**   
Der Rest der Attribute des Elements, die in DynamoDB gespeichert werden sollen. 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)). Dies ist ein optionales Feld.

 **`condition`**   
Eine Bedingung, um zu bestimmen, ob die Anforderung erfolgreich sein soll oder nicht, basierend auf dem Status des Objekts, das sich bereits in DynamoDB befindet. Wenn keine Bedingung angegeben ist, überschreibt die `PutItem`-Anforderung alle vorhandenen Einträge für dieses Element. Weitere Informationen zu Bedingungen finden Sie unter [Bedingungsausdrücke](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-condition-expressions). Dieser Wert ist optional.

 **`_version`**   
Ein numerischer Wert, der die neueste bekannte Version eines Elements darstellt. Dieser Wert ist optional. Dieses Feld wird für die *Konflikterkennung* verwendet und nur für versionsgesteuerte Datenquellen unterstützt.

**`customPartitionKey`**  
Wenn diese Option aktiviert ist, ändert dieser Zeichenfolgenwert das Format der `ds_sk` und `ds_pk` -Datensätze, die von der Delta-Synchronisierungstabelle verwendet werden, wenn die Versionierung aktiviert wurde (weitere Informationen finden Sie unter [Konflikterkennung und -synchronisierung](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) im *AWS AppSync Entwicklerhandbuch*). Wenn diese Option aktiviert ist, ist auch die Verarbeitung des `populateIndexFields` Eintrags aktiviert. Dies ist ein optionales Feld.

**`populateIndexFields`**  
Ein boolescher Wert, der, wenn er **zusammen mit dem** aktiviert wird`customPartitionKey`, neue Einträge für jeden Datensatz in der Delta-Synchronisierungstabelle erstellt, insbesondere in den Spalten `gsi_ds_pk` und`gsi_ds_sk`. Weitere Informationen finden Sie unter [Konflikterkennung und -synchronisierung](https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html) im *AWS AppSync Entwicklerhandbuch*. Dies ist ein optionales Feld.   
Das in DynamoDB geschriebene Element wird automatisch in primitive GraphQL- und JSON-Typen konvertiert und ist im Kontext result () verfügbar. `context.result`

Das in DynamoDB geschriebene Element wird automatisch in primitive GraphQL- und JSON-Typen konvertiert und ist im Kontext result () verfügbar. `context.result`

Weitere Informationen zur DynamoDB-Typkonvertierung finden Sie unter [Typsystem (Antwortzuordnung](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-responses)).

[Weitere Informationen zu JavaScript Resolvern finden Sie unter JavaScript Übersicht über Resolver.](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-overview-js.html)

## Beispiel 1
<a name="js-example-1"></a>

Das folgende Beispiel ist ein Funktionsanforderungshandler für eine GraphQL-Mutation`updateThing(foo: String!, bar: String!, name: String!, version: Int!)`.

Wenn kein Element mit dem angegebenen Schlüssel vorhanden ist, wird es erstellt. Wenn ein Element mit dem angegebenen Schlüssel bereits vorhanden ist, wird es überschrieben.

```
import { util } from '@aws-appsync/utils';
export function request(ctx) {
  const { foo, bar, ...values} = ctx.args
  return {
    operation: 'PutItem',
    key: util.dynamodb.toMapValues({foo, bar}),
    attributeValues: util.dynamodb.toMapValues(values),
  };
}
```

## Beispiel 2
<a name="js-example-2"></a>

Das folgende Beispiel ist ein Funktionsanforderungshandler für eine GraphQL-Mutation`updateThing(foo: String!, bar: String!, name: String!, expectedVersion: Int!)`.

In diesem Beispiel wird überprüft, ob für das Element, das sich derzeit in DynamoDB befindet, das `version` Feld auf gesetzt ist. `expectedVersion`

```
import { util } from '@aws-appsync/utils';
export function request(ctx) {
  const { foo, bar, name, expectedVersion } = ctx.args;
  const values = { name, version: expectedVersion + 1 };
  let condition = util.transform.toDynamoDBConditionExpression({
    version: { eq: expectedVersion },
  });

  return {
    operation: 'PutItem',
    key: util.dynamodb.toMapValues({ foo, bar }),
    attributeValues: util.dynamodb.toMapValues(values),
    condition,
  };
}
```

Weitere Informationen zur DynamoDB `PutItem`-API finden Sie in der [DynamoDB API-Dokumentation](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html).