Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS AppSync saat ini mendukung pembuatan versi pada sumber data DynamoDB. Operasi Deteksi Konflik, Resolusi Konflik, dan Sinkronisasi memerlukan sumber Versioned
data. Ketika Anda mengaktifkan versi pada sumber data, secara otomatis AWS AppSync akan:
-
Tingkatkan item dengan metadata versi objek.
-
Rekam perubahan yang dibuat pada item dengan AWS AppSync mutasi ke tabel Delta.
-
Pertahankan item yang dihapus di tabel Dasar dengan “batu nisan” untuk jangka waktu yang dapat dikonfigurasi.
Konfigurasi sumber data berversi
Saat Anda mengaktifkan pembuatan versi pada sumber data DynamoDB, Anda menentukan bidang berikut:
-
BaseTableTTL
-
Jumlah menit untuk mempertahankan item yang dihapus di tabel Dasar dengan “batu nisan” - bidang metadata yang menunjukkan bahwa item telah dihapus. Anda dapat mengatur nilai ini ke 0 jika Anda ingin item segera dihapus ketika mereka dihapus. Bidang ini wajib diisi.
-
DeltaSyncTableName
-
Nama tabel tempat perubahan yang dilakukan pada item dengan AWS AppSync mutasi disimpan. Bidang ini wajib diisi.
-
DeltaSyncTableTTL
-
Jumlah menit untuk menyimpan item di tabel Delta. Bidang ini wajib diisi.
Pencatatan tabel sinkronisasi Delta
AWS AppSync saat ini mendukung Delta Sync Logging untuk mutasi menggunakanPutItem
,UpdateItem
, dan operasi DynamoDBDeleteItem
.
Ketika AWS AppSync mutasi mengubah item dalam sumber data berversi, catatan perubahan itu akan disimpan dalam tabel Delta yang dioptimalkan untuk pembaruan tambahan. Anda dapat memilih untuk menggunakan tabel Delta yang berbeda (misalnya satu per jenis, satu per area domain) untuk sumber data berversi lainnya atau tabel Delta tunggal untuk API Anda. AWS AppSync merekomendasikan untuk tidak menggunakan tabel Delta tunggal untuk beberapa APIs untuk menghindari tabrakan kunci utama.
Skema yang diperlukan untuk tabel ini adalah sebagai berikut:
-
ds_pk
-
Nilai string yang digunakan sebagai kunci partisi. Ini dibangun dengan menggabungkan nama sumber data Base dan format ISO 8601 dari tanggal perubahan terjadi (misalnya).
Comments:2019-01-01
Ketika
customPartitionKey
bendera dari template pemetaan VTL ditetapkan sebagai nama kolom kunci partisi (lihat Referensi Template Pemetaan Resolver untuk DynamoDB di Panduan AWS AppSync Pengembang), formatds_pk
perubahan, dan string dibangun dengan menambahkan nilai kunci partisi dalam catatan baru di tabel Base. Misalnya, jika catatan dalam tabel Base memiliki nilai kunci partisi1a
dan nilai kunci sortir2b
, nilai baru string akan menjadi:Comments:2019-01-01:1a
. -
ds_sk
-
Nilai string yang digunakan sebagai kunci pengurutan. Ini dibangun dengan menggabungkan format ISO 8601 dari waktu perubahan terjadi, kunci utama item, dan versi item. Kombinasi bidang ini menjamin keunikan untuk setiap entri dalam tabel Delta (misalnya untuk waktu
09:30:00
dan ID1a
dan versi2
, ini akan menjadi).09:30:00:1a:2
Ketika
customPartitionKey
bendera dari template pemetaan VTL diatur ke nama kolom kunci partisi (lihat Referensi Template Pemetaan Resolver untuk DynamoDB dalam Panduan AWS AppSync Pengembang), formatds_sk
perubahan, dan string dibangun dengan mengganti nilai kombinasi kunci dengan nilai kunci pengurutan di tabel Base. Menggunakan contoh sebelumnya di atas, jika catatan dalam tabel Base memiliki nilai kunci partisi1a
dan nilai kunci jenis2b
, nilai baru string akan:09:30:00:2b:3
. -
_ttl
-
Nilai numerik yang menyimpan stempel waktu, dalam detik epoch, ketika item harus dihapus dari tabel Delta. Nilai ini ditentukan dengan menambahkan
DeltaSyncTableTTL
nilai yang dikonfigurasi pada sumber data ke saat perubahan terjadi. Bidang ini harus dikonfigurasi sebagai DynamoDB TTL Atribut.
Peran IAM yang dikonfigurasi untuk digunakan dengan tabel Base juga harus berisi izin untuk beroperasi pada tabel Delta. Dalam contoh ini, kebijakan izin untuk tabel Base yang dipanggil Comments
dan tabel Delta dipanggil ChangeLog
ditampilkan:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:us-east-1:000000000000:table/Comments", "arn:aws:dynamodb:us-east-1:000000000000:table/Comments/*", "arn:aws:dynamodb:us-east-1:000000000000:table/ChangeLog", "arn:aws:dynamodb:us-east-1:000000000000:table/ChangeLog/*" ] } ] }
Metadata sumber data berversi
AWS AppSync mengelola bidang metadata pada sumber Versioned
data atas nama Anda. Memodifikasi bidang ini sendiri dapat menyebabkan kesalahan dalam aplikasi atau kehilangan data Anda. Bidang ini meliputi:
-
_version
-
Penghitung yang meningkat secara monoton yang diperbarui setiap saat perubahan terjadi pada suatu item.
-
_lastChangedAt
-
Nilai numerik yang menyimpan stempel waktu, dalam milidetik epoch, saat item terakhir diubah.
-
_deleted
-
Nilai “batu nisan” Boolean yang menunjukkan bahwa item telah dihapus. Ini dapat digunakan oleh aplikasi untuk mengusir item yang dihapus dari penyimpanan data lokal.
-
_ttl
-
Nilai numerik yang menyimpan stempel waktu, dalam detik epoch, ketika item harus dihapus dari sumber data yang mendasarinya.
-
ds_pk
-
Nilai string yang digunakan sebagai kunci partisi untuk tabel Delta.
-
ds_sk
-
Nilai string yang digunakan sebagai kunci pengurutan untuk tabel Delta.
gsi_ds_pk
-
Sebuah atribut nilai string yang dihasilkan untuk mendukung indeks sekunder global sebagai kunci partisi. Ini akan disertakan hanya jika kedua
customPartitionKey
danpopulateIndexFields
flag diaktifkan dalam template pemetaan VTL (lihat Referensi Template Pemetaan Resolver untuk DynamoDB di Panduan Pengembang).AWS AppSync Jika diaktifkan, nilai akan dibangun dengan menggabungkan nama sumber data Base dan format ISO 8601 dari tanggal di mana perubahan terjadi (misalnya jika tabel Base bernama Komentar, catatan ini akan ditetapkan sebagai).Comments:2019-01-01
gsi_ds_sk
-
Sebuah atribut nilai string yang dihasilkan untuk mendukung indeks sekunder global sebagai kunci pengurutan. Ini akan disertakan hanya jika kedua
customPartitionKey
danpopulateIndexFields
flag diaktifkan dalam template pemetaan VTL (lihat Referensi Template Pemetaan Resolver untuk DynamoDB di Panduan Pengembang).AWS AppSync Jika diaktifkan, nilainya akan dibangun dengan menggabungkan format ISO 8601 saat perubahan terjadi, kunci partisi item di tabel Dasar, kunci pengurutan item di tabel Dasar, dan versi item (misalnya untuk sementara waktu, nilai kunci partisi09:30:00
, nilai kunci pengurutan1a
, dan versi2b
, ini akan menjadi).3
09:30:00:1a#2b:3
Bidang metadata ini akan memengaruhi ukuran keseluruhan item di sumber data yang mendasarinya. AWS AppSync merekomendasikan untuk memesan 500 byte+Ukuran Kunci Utama Maks dari penyimpanan untuk metadata sumber data berversi saat mendesain aplikasi Anda. Untuk menggunakan metadata ini dalam aplikasi klien, sertakan _version
_lastChangedAt
, dan _deleted
bidang pada tipe GraphQL Anda dan dalam set pilihan untuk mutasi.