

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Dokumen pemetaan `Sync` permintaan memungkinkan Anda mengambil semua hasil dari tabel DynamoDB dan kemudian hanya menerima data yang diubah sejak kueri terakhir Anda (pembaruan delta). `Sync`permintaan hanya dapat dibuat ke sumber data DynamoDB berversi. Anda dapat menentukan sebagai berikut:
+ Filter untuk mengecualikan hasil
+ Berapa banyak item yang akan dikembalikan
+ Token Paginasi
+ Ketika `Sync` operasi terakhir Anda dimulai

Dokumen `Sync` pemetaan memiliki struktur sebagai berikut:

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

Bidang didefinisikan sebagai berikut:

## Bidang sinkronisasi
<a name="sync-list"></a>

### Daftar bidang sinkronisasi
<a name="sync-list-col"></a>

** `version` **  
Versi definisi template. Hanya saat `2018-05-29` ini didukung. Nilai ini diperlukan.

** `operation` **  
Operasi DynamoDB untuk melakukan. Untuk melakukan `Sync` operasi, ini harus diatur ke`Sync`. Nilai ini diperlukan.

** `filter` **  
Filter yang dapat digunakan untuk memfilter hasil dari DynamoDB sebelum dikembalikan. Untuk informasi selengkapnya tentang filter, lihat [Menyaring](aws-appsync-resolver-mapping-template-reference-dynamodb-filter.md). Bidang ini bersifat opsional.

** `limit` **  
Jumlah maksimum item untuk dievaluasi pada satu waktu. Bidang ini bersifat opsional. Jika dihilangkan, batas default akan diatur ke `100` item. Nilai maksimum untuk bidang ini adalah `1000` item.

** `nextToken` **  
Token pagination untuk melanjutkan kueri sebelumnya. Ini akan diperoleh dari kueri sebelumnya. Bidang ini bersifat opsional.

** `lastSync` **  
Momen, dalam milidetik zaman, ketika `Sync` operasi sukses terakhir dimulai. Jika ditentukan, hanya item yang telah berubah setelah `lastSync` dikembalikan. Bidang ini opsional, dan hanya boleh diisi setelah mengambil semua halaman dari operasi awal`Sync`. Jika dihilangkan, hasil dari tabel *Base* akan dikembalikan, jika tidak, hasil dari tabel *Delta* akan dikembalikan.

**`basePartitionKey`**  
Kunci partisi dari tabel *Basis* yang digunakan saat melakukan `Sync` operasi. Bidang ini memungkinkan `Sync` operasi yang akan dilakukan ketika tabel menggunakan kunci partisi kustom. Ini adalah bidang opsional.

**`deltaIndexName`**  
Indeks yang digunakan untuk `Sync` operasi. Indeks ini diperlukan untuk mengaktifkan `Sync` operasi di seluruh tabel penyimpanan delta saat tabel menggunakan kunci partisi khusus. `Sync`Operasi akan dilakukan pada GSI (dibuat pada `gsi_ds_pk` dan`gsi_ds_sk`). Bidang ini bersifat opsional.

Hasil yang dikembalikan oleh sinkronisasi DynamoDB secara otomatis diubah menjadi tipe primitif GraphQL dan JSON dan tersedia dalam konteks pemetaan (). `$context.result`

Untuk informasi selengkapnya tentang konversi tipe DynamoDB, [lihat Mengetik sistem (](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-responses.md)pemetaan respons).

Untuk informasi selengkapnya tentang template pemetaan respons, lihat Ringkasan template [pemetaan Resolver](resolver-mapping-template-reference-overview.md#aws-appsync-resolver-mapping-template-reference-overview).

Hasilnya memiliki struktur sebagai berikut:

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

Bidang didefinisikan sebagai berikut:

** `items` **  
Daftar yang berisi item yang dikembalikan oleh sinkronisasi.

** `nextToken` **  
Jika mungkin ada lebih banyak hasil, `nextToken` berisi token pagination yang dapat Anda gunakan dalam permintaan lain. AWS AppSync mengenkripsi dan mengaburkan token pagination yang dikembalikan dari DynamoDB. Ini mencegah data tabel Anda bocor secara tidak sengaja ke penelepon. Selain itu, token pagination ini tidak dapat digunakan di berbagai resolver.

** `scannedCount` **  
Jumlah item yang diambil oleh DynamoDB sebelum ekspresi filter (jika ada) diterapkan.

** `startedAt` **  
Saat ini, dalam milidetik epoch, ketika operasi sinkronisasi dimulai yang dapat Anda simpan secara lokal dan gunakan dalam permintaan lain sebagai argumen Anda. `lastSync` Jika token pagination disertakan dalam permintaan, nilai ini akan sama dengan yang dikembalikan oleh permintaan untuk halaman pertama hasil.

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

Contoh berikut adalah template pemetaan untuk query GraphQL:. `syncPosts(nextToken: String, lastSync: AWSTimestamp)`

Dalam contoh ini, jika `lastSync` dihilangkan, semua entri dalam tabel dasar dikembalikan. Jika `lastSync` disediakan, hanya entri dalam tabel sinkronisasi delta yang telah berubah sejak itu `lastSync` dikembalikan.

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