Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sinkronkan
Ob Sync jek permintaan memungkinkan Anda mengambil semua hasil dari tabel DynamoDB dan kemudian menerima hanya data yang diubah sejak kueri terakhir Anda (pembaruan delta). Syncpermintaan hanya dapat dibuat ke sumber data DynamoDB berversi. Anda dapat menentukan sebagai berikut:
-
Filter untuk mengecualikan hasil
-
Berapa banyak barang yang harus dikembalikan
-
Token Paginasi
-
Ketika
Syncoperasi terakhir Anda dimulai
Ob Sync jek permintaan memiliki struktur sebagai berikut:
type DynamoDBSyncRequest = { operation: 'Sync'; basePartitionKey?: string; deltaIndexName?: string; limit?: number; nextToken?: string; lastSync?: number; filter?: { expression: string; expressionNames?: { [key: string]: string }; expressionValues?: { [key: string]: any }; }; };
Bidang didefinisikan sebagai berikut:
Sinkronisasi bidang
-
operation -
Operasi DynamoDB untuk melakukan. Untuk melakukan
Syncoperasi, ini harus diatur keSync. Nilai ini diperlukan. -
filter -
Filter yang dapat digunakan untuk memfilter hasil dari DynamoDB sebelum dikembalikan. Untuk informasi selengkapnya tentang filter, lihat Filter. Ini adalah bidang opsional.
-
limit -
Jumlah maksimum item untuk dievaluasi pada satu waktu. Ini adalah bidang opsional. Jika dihilangkan, batas default akan diatur ke
100item. Nilai maksimum untuk bidang ini adalah1000item. -
nextToken -
Token pagination untuk melanjutkan kueri sebelumnya. Ini akan diperoleh dari kueri sebelumnya. Ini adalah bidang opsional.
-
lastSync -
Momen, dalam zaman milidetik, ketika operasi terakhir yang berhasil
Syncdimulai. Jika ditentukan, hanya item yang telah berubah setelahnya yanglastSyncdikembalikan. Bidang ini opsional, dan hanya boleh diisi setelah mengambil semua halaman dariSyncoperasi awal. Jika dihilangkan, hasil dari tabel Base akan dikembalikan, jika tidak, hasil dari tabel Delta akan dikembalikan. basePartitionKey-
Kunci partisi dari tabel Base digunakan saat melakukan
Syncoperasi. Bidang ini memungkinkanSyncoperasi dilakukan ketika tabel menggunakan kunci partisi khusus. Ini adalah bidang opsional. deltaIndexName-
Indeks yang digunakan untuk
Syncoperasi. Indeks ini diperlukan untuk mengaktifkanSyncoperasi pada seluruh tabel penyimpanan delta ketika tabel menggunakan kunci partisi khusus.SyncOperasi akan dilakukan pada GSI (dibuat padagsi_ds_pkdangsi_ds_sk). Ini adalah bidang opsional.
Hasil yang dikembalikan oleh sinkronisasi DynamoDB secara otomatis diubah menjadi tipe primitif GraphQL dan JSON dan tersedia dalam hasil konteks (). context.result
Untuk informasi selengkapnya tentang konversi tipe DynamoDB, lihat Sistem tipe (pemetaan respons).
Untuk informasi selengkapnya tentang JavaScript resolver, lihat ikhtisar JavaScript resolver.
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,
nextTokenberisi 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 fungsi atau resolver. -
scannedCount -
Jumlah item yang diambil oleh DynamoDB sebelum ekspresi filter (jika ada) diterapkan.
-
startedAt -
Momen, dalam milidetik zaman, ketika operasi sinkronisasi dimulai yang dapat Anda simpan secara lokal dan gunakan dalam permintaan lain sebagai argumen Anda.
lastSyncJika token pagination disertakan dalam permintaan, nilai ini akan sama dengan yang dikembalikan oleh permintaan untuk halaman pertama hasil.
Contoh
Contoh berikut adalah handler permintaan fungsi untuk kueri 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 yang lastSync dikembalikan.
export function request(ctx) { const { nextToken, lastSync } = ctx.args; return { operation: 'Sync', limit: 100, nextToken, lastSync }; }