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
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 folgende Formen 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:
Synchronisieren Sie Felder
-
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 aufSync
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. 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 ist1000
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 nachlastSync
geändert haben. Dieses Feld ist optional und sollte nur ausgefüllt werden, nachdem alle Seiten von einem erstenSync
-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 eineSync
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 einenSync
Vorgang für die gesamte Delta-Store-Tabelle zu aktivieren, wenn die Tabelle einen benutzerdefinierten Partitionsschlüssel verwendet. DieSync
Operation wird auf dem GSI (erstellt amgsi_ds_pk
undgsi_ds_sk
) ausgeführt. Dies ist ein optionales Feld.
Die von der DynamoDB-Synchronisierung zurückgegebenen Ergebnisse werden automatisch in GraphQL und JSON primitive Typen konvertiert und sind im Mapping-Kontext () verfügbar. $context.result
Weitere Informationen zur DynamoDB-Typkonvertierung finden Sie unter Typsystem (Antwortzuordnung).
Weitere Informationen zu Vorlagen für die Antwortzuweisung finden Sie unter Übersicht über Resolver-Mapping-Vorlagen.
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
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)) }