

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.

# Synchronisierung
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-sync"></a>

Mit dem `Sync` Anforderungszuordnungsdokument können Sie alle Ergebnisse aus einer DynamoDB-Tabelle abrufen und anschließend nur die Daten empfangen, die seit Ihrer letzten Abfrage geändert wurden (die Delta-Updates). `Sync`Anfragen können nur an versionierte DynamoDB-Datenquellen gestellt werden. Sie können Folgendes angeben:
+ Ein Filter zum Ausschließen von Ergebnissen
+ Wie viele Elemente zurückgegeben werden sollen
+ Paginierungstoken
+ Wann Ihre letzte `Sync`-Operation gestartet wurde

Das `Sync`-Zuweisungsdokument weist die folgende Struktur auf:

```
{
    "version" : "2018-05-29",
    "operation" : "Sync",
    "basePartitionKey": "Base Tables PartitionKey",
    "deltaIndexName": "delta-index-name",
    "limit" : 10,
    "nextToken" : "aPaginationToken",
    "lastSync" :  1550000000000,
    "filter" : {
        ...
    }
}
```

Die Felder sind wie folgt definiert:

## Felder synchronisieren
<a name="sync-list"></a>

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

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

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

** `filter` **  
Ein Filter, mit dem die Ergebnisse aus DynamoDB gefiltert werden können, bevor sie zurückgegeben werden. Weitere Informationen zu Filtern finden Sie unter [Filter](aws-appsync-resolver-mapping-template-reference-dynamodb-filter.md). Dies ist ein optionales Feld.

** `limit` **  
Die maximale Anzahl der zu einem bestimmten Zeitpunkt auszuwertenden Elemente. Dies ist ein optionales Feld. Wenn nicht angegeben, wird das Standardlimit auf `100` Elemente festgelegt. Der maximale Wert für dieses Feld ist `1000` Elemente.

** `nextToken` **  
Das Paginierungs-Token für die Fortsetzung einer früheren Abfrage. Dieses wäre von einer vorherigen Abfrage erhalten worden. Dies ist ein optionales Feld.

** `lastSync` **  
Der Moment, in Epochenmillisekunden, an dem die letzte erfolgreiche `Sync`-Operation gestartet wurde. Wenn angegeben, werden nur Elemente zurückgegeben, die sich nach `lastSync` geändert haben. Dieses Feld ist optional und sollte nur ausgefüllt werden, nachdem alle Seiten von einem ersten `Sync`-Vorgang abgerufen wurden. Wenn nicht angegeben, werden Ergebnisse aus der *Basis*-Tabelle zurückgegeben, andernfalls werden Ergebnisse aus der *Delta*-Tabelle zurückgegeben.

**`basePartitionKey`**  
Der Partitionsschlüssel der *Basistabelle*, der bei der Ausführung eines `Sync` Vorgangs verwendet wird. In diesem Feld kann eine `Sync` Operation ausgeführt werden, wenn die Tabelle einen benutzerdefinierten Partitionsschlüssel verwendet. Dies ist ein optionales Feld.

**`deltaIndexName`**  
Der für die `Sync` Operation verwendete Index. Dieser Index ist erforderlich, um einen `Sync` Vorgang für die gesamte Delta-Speichertabelle zu aktivieren, wenn die Tabelle einen benutzerdefinierten Partitionsschlüssel verwendet. Die `Sync` Operation wird auf der GSI (erstellt am `gsi_ds_pk` und`gsi_ds_sk`) ausgeführt. Dies ist ein optionales Feld.

Die von der DynamoDB-Synchronisierung zurückgegebenen Ergebnisse werden automatisch in primitive GraphQL- und JSON-Typen konvertiert und sind im Mapping-Kontext () verfügbar. `$context.result`

Weitere Informationen zur DynamoDB-Typkonvertierung finden Sie unter [Typsystem (Antwortzuordnung](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md)).

Weitere Informationen zu Vorlagen für die Antwortzuweisung finden Sie unter Übersicht über [Resolver-Mapping-Vorlagen](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

Die Ergebnisse weisen die folgende Struktur auf:

```
{
    items = [ ... ],
    nextToken = "a pagination token",
    scannedCount = 10,
    startedAt = 1550000000000
}
```

Die Felder sind wie folgt definiert:

** `items` **  
Eine Liste mit den Elementen, die von der Synchronisierung zurückgegeben wurden.

** `nextToken` **  
Falls es möglicherweise mehr Ergebnisse gibt, `nextToken` enthält es ein Paginierungstoken, das Sie in einer anderen Anfrage verwenden können. AWS AppSync verschlüsselt und verschleiert das von DynamoDB zurückgegebene Paginierungstoken. Damit sickern Daten aus Ihren Tabellen nicht versehentlich an den Aufrufer durch. Diese Paginierungs-Tokens können nicht über verschiedene Resolver hinweg verwendet werden.

** `scannedCount` **  
Die Anzahl der Elemente, die von DynamoDB abgerufen wurden, bevor ein Filterausdruck (falls vorhanden) angewendet wurde.

** `startedAt` **  
Der Moment, in Epochenmillisekunden, an dem der Synchronisierungsvorgang gestartet wurde, den Sie lokal speichern und in einer anderen Anforderung als `lastSync`-Argument verwenden können. Wenn ein Paginierungstoken in der Anforderung enthalten war, entspricht dieser Wert dem Wert, der von der Anforderung für die erste Ergebnisseite zurückgegeben wird.

## Beispiel
<a name="id14"></a>

Das folgende Beispiel ist eine Zuordnungsvorlage für die GraphQL-Abfrage:`syncPosts(nextToken: String, lastSync: AWSTimestamp)`.

Wenn in diesem Beispiel `lastSync` weggelassen wird, werden alle Einträge in der Basistabelle zurückgegeben. Wenn `lastSync` angegeben wird, werden nur die Einträge in der Delta-Synchronisationstabelle zurückgegeben, die sich seit `lastSync` geändert haben.

```
{
    "version" : "2018-05-29",
    "operation" : "Sync",
    "limit": 100,
    "nextToken": $util.toJson($util.defaultIfNull($ctx.args.nextToken, null)),
    "lastSync": $util.toJson($util.defaultIfNull($ctx.args.lastSync, null))
}
```