

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Le document de mappage des `Sync` demandes vous permet de récupérer tous les résultats d'une table DynamoDB, puis de ne recevoir que les données modifiées depuis votre dernière requête (le delta est mis à jour). `Sync`les demandes ne peuvent être adressées qu'à des sources de données DynamoDB versionnées. Vous pouvez spécifier les éléments suivants :
+ Filtre pour exclure des résultats
+ Combien d'articles renvoyer
+ Jeton de pagination.
+ Lorsque votre dernière opération `Sync` a été lancée

Le document de mappage `Sync` a la structure suivante :

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

Les champs sont définis comme suit :

## Synchroniser les champs
<a name="sync-list"></a>

### Liste des champs de synchronisation
<a name="sync-list-col"></a>

** `version` **  
Version de la définition du modèle. `2018-05-29` est le seul à être pris en charge actuellement. Cette valeur est obligatoire.

** `operation` **  
L'opération DynamoDB à effectuer. Pour que vous puissiez effectuer l'opération `Sync`, ce champ doit être défini sur `Sync`. Cette valeur est obligatoire.

** `filter` **  
Filtre qui peut être utilisé pour filtrer les résultats de DynamoDB avant qu'ils ne soient renvoyés. Pour plus d'informations sur les filtres, consultez [Filters (Filtres)](aws-appsync-resolver-mapping-template-reference-dynamodb-filter.md). Ce champ est facultatif.

** `limit` **  
Nombre maximal d'éléments à évaluer simultanément. Ce champ est facultatif. Si cette option est omise, la limite par défaut sera définie sur `100` éléments. La valeur maximale de ce champ est `1000` éléments.

** `nextToken` **  
Jeton de pagination pour continuer une requête précédente. Il a été obtenu à partir d'une requête précédente. Ce champ est facultatif.

** `lastSync` **  
Le moment, en millisecondes Epoch, où la dernière opération `Sync` réussie a commencé. Si spécifié, seuls les éléments qui ont changé après `lastSync` sont retournés. Ce champ est facultatif et ne doit être renseigné qu'après avoir récupéré toutes les pages d'une opération `Sync` initiale. Si cette option est omise, les résultats de la table *Base* seront retournés, sinon les résultats de la table *Delta* seront retournés.

**`basePartitionKey`**  
La clé de partition de la table de *base* utilisée lors de l'exécution d'une `Sync` opération. Ce champ permet d'effectuer une `Sync` opération lorsque la table utilise une clé de partition personnalisée. Il s'agit d'un champ facultatif.

**`deltaIndexName`**  
L'index utilisé pour l'`Sync`opération. Cet index est nécessaire pour permettre une `Sync` opération sur l'ensemble de la table delta store lorsque la table utilise une clé de partition personnalisée. L'`Sync`opération sera effectuée sur le GSI (créé sur `gsi_ds_pk` et`gsi_ds_sk`). Ce champ est facultatif.

Les résultats renvoyés par la synchronisation DynamoDB sont automatiquement convertis en types primitifs GraphQL et JSON et sont disponibles dans le contexte de mappage (). `$context.result`

Pour plus d'informations sur la conversion de type DynamoDB, [voir Système de types (](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md)mappage des réponses).

Pour plus d'informations sur les modèles de mappage des réponses, consultez la section [Vue d'ensemble des modèles de mappage Resolver](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

Les résultats ont la structure suivante :

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

Les champs sont définis comme suit :

** `items` **  
Liste contenant les éléments renvoyés par la synchronisation.

** `nextToken` **  
S'il peut y avoir plus de résultats, `nextToken` contient un jeton de pagination que vous pouvez utiliser dans une autre demande. AWS AppSync chiffre et masque le jeton de pagination renvoyé par DynamoDB. Cela empêche que les données provenant de votre table ne soient accidentellement communiquées au mandataire. D'autre part, ces jetons de pagination ne peuvent pas être utilisés dans différents résolveurs.

** `scannedCount` **  
Nombre d'éléments récupérés par DynamoDB avant l'application d'une expression de filtre (le cas échéant).

** `startedAt` **  
Le moment, en millisecondes Epoch, où l'opération de synchronisation a commencé, que vous pouvez stocker localement et utiliser dans une autre requête comme argument `lastSync`. Si un jeton de pagination a été inclus dans la requête, cette valeur sera la même que celle renvoyée par la requête pour la première page de résultats.

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

L'exemple suivant est un modèle de mappage pour la requête GraphQL :. `syncPosts(nextToken: String, lastSync: AWSTimestamp)`

Dans cet exemple, si `lastSync` est omis, toutes les entrées de la table de base sont renvoyées. Si `lastSync` est fourni, seules les entrées de la table de synchronisation delta qui ont changé depuis `lastSync` sont renvoyées.

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