

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

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). `Sync`le richieste possono essere inoltrate solo a sorgenti dati DynamoDB con versione. È possibile specificare quanto segue:
+ 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
<a name="sync-list"></a>

### Elenco dei campi di sincronizzazione
<a name="sync-list-col"></a>

** `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](aws-appsync-resolver-mapping-template-reference-dynamodb-filter.md). 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'`Sync`operazione 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'`Sync`operazione sull'intera tabella delta store quando la tabella utilizza una chiave di partizione personalizzata. L'`Sync`operazione verrà eseguita sul GSI (creato su `gsi_ds_pk` and`gsi_ds_sk`). Questo campo è facoltativo.

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

Per ulteriori informazioni sulla conversione dei tipi in DynamoDB, [vedere Sistema dei tipi (](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md)mappatura delle risposte).

Per ulteriori informazioni sui modelli di mappatura delle risposte, consulta Panoramica dei modelli di mappatura [Resolver](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

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
<a name="id14"></a>

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))
}
```