Sync - AWS AppSync

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sync

Il documento di mappatura della Sync richiesta consente di recuperare tutti i risultati da una tabella DynamoDB e quindi ricevere solo i dati modificati dall'ultima query (gli aggiornamenti delta). Syncle richieste possono essere effettuate solo a sorgenti dati DynamoDB con versione. È possibile specificare le forme seguenti:

  • Un filtro per escludere i risultati

  • Numero di voci da restituire

  • Token di paginazione

  • Quando è stata avviata l'ultima operazione Sync

Il documento di mappatura Sync ha la seguente struttura:

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

I campi sono definiti come segue:

Sincronizza campi

version

La versione di definizione del modello. Al momento è supportato soltanto 2018-05-29. Questo valore è obbligatorio.

operation

L'operazione DynamoDB da eseguire. Per eseguire l'operazione Sync, il valore deve essere impostato su Sync. Questo valore è obbligatorio.

filter

Un filtro che può essere utilizzato per filtrare i risultati di DynamoDB prima che vengano restituiti. Per ulteriori informazioni sui filtri, consulta Filtri. Questo campo è facoltativo.

limit

Numero massimo di elementi da valutare in una sola volta. Questo campo è facoltativo. Se omesso, il limite predefinito sarà impostato su 100 elementi. Il valore massimo per questo campo è 1000 articoli.

nextToken

Il token di paginazione utilizzato per continuare una query precedente, dalla quale deve essere ottenuto. Questo campo è facoltativo.

lastSync

Il momento, in millisecondi dall'epoca, in cui è iniziata l'ultima operazione Sync riuscita. Se specificato, vengono restituiti solo gli elementi che sono stati modificati dopo lastSync. Questo campo è facoltativo e deve essere compilato solo dopo aver recuperato tutte le pagine da un' operazione Sync iniziale. Se omesso, i risultati della tabella Base verranno restituiti, altrimenti verranno restituiti i risultati della tabella Delta.

basePartitionKey

La chiave di partizione della tabella Base utilizzata durante l'esecuzione di un'operazione. Sync Questo campo consente di eseguire un'Syncoperazione quando la tabella utilizza una chiave di partizione personalizzata. Questo campo è opzionale.

deltaIndexName

L'indice utilizzato per l'operazione. Sync Questo indice è necessario per abilitare un'Syncoperazione sull'intera tabella delta store quando la tabella utilizza una chiave di partizione personalizzata. L'Syncoperazione verrà eseguita su GSI (creato su gsi_ds_pk andgsi_ds_sk). Questo campo è facoltativo.

I risultati restituiti dalla sincronizzazione DynamoDB vengono convertiti automaticamente in tipi GraphQL JSON e primitivi e sono disponibili nel contesto di mappatura (). $context.result

Per ulteriori informazioni sulla conversione dei tipi in DynamoDB, vedere Sistema dei tipi (mappatura delle risposte).

Per ulteriori informazioni sui modelli di mappatura delle risposte, consulta Panoramica dei modelli di mappatura Resolver.

I risultati hanno la struttura seguente:

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

I campi sono definiti come segue:

items

Un elenco contenente le voci restituite dalla sincronizzazione.

nextToken

Se potrebbero esserci più risultati, nextToken contiene un token di impaginazione che puoi utilizzare in un'altra richiesta. AWS AppSync crittografa e offusca il token di impaginazione restituito da DynamoDB. In questo modo si evita che i dati della tabella siano inavvertitamente divulgati all'intermediario. Inoltre, questi token di paginazione non possono essere utilizzati con più resolver diversi.

scannedCount

Il numero di elementi recuperati da DynamoDB prima dell'applicazione di un'espressione di filtro (se presente).

startedAt

Il momento, in millisecondi dall'epoca, in cui è iniziata l'operazione di sincronizzazione che è possibile memorizzare localmente e utilizzare in un'altra richiesta come argomento lastSync. Se un token di paginazione è stato incluso nella richiesta, questo valore sarà lo stesso di quello restituito dalla richiesta per la prima pagina di risultati.

Esempio

L'esempio seguente è un modello di mappatura per la query GraphQL:. syncPosts(nextToken: String, lastSync: AWSTimestamp)

In questo esempio, se lastSync viene omesso, vengono restituite tutte le voci nella tabella di base. Se lastSync viene fornito, vengono restituite solo le voci nella tabella di sincronizzazione delta che sono state modificate dal momento in cui sono state sincronizzate lastSync.

{ "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)) }