

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="js-aws-appsync-resolver-reference-dynamodb-sync"></a>

Mit dem `Sync` Anforderungsobjekt 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` Anforderungsobjekt hat die folgende Struktur:

```
type DynamoDBSyncRequest = {
  operation: 'Sync';
  basePartitionKey?: string;
  deltaIndexName?: string;
  limit?: number;
  nextToken?: string;
  lastSync?: number;
  filter?: {
    expression: string;
    expressionNames?: { [key: string]: string };
    expressionValues?: { [key: string]: any };
  };
};
```

Die Felder sind wie folgt definiert:

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

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

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

** `filter` **  
Ein Filter, der verwendet werden kann, um die Ergebnisse aus DynamoDB zu filtern, bevor sie zurückgegeben werden. Weitere Informationen zu Filtern finden Sie unter [Filter](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-filter). 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 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)

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. Außerdem können diese Paginierungstoken nicht für verschiedene Funktionen oder Resolver 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="js-id14"></a>

Das folgende Beispiel ist ein Funktionsanforderungshandler 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.

```
export function request(ctx) {
  const { nextToken, lastSync } = ctx.args;
  return { operation: 'Sync', limit: 100, nextToken, lastSync };
}
```