Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penguncian optimis untuk penulisan model aset
Saat memperbarui model aset, pengguna melakukan hal berikut:
Baca definisi model aset saat ini.
Edit definisi model aset dengan perubahan yang diperlukan.
Perbarui model aset dengan definisi baru.
Dalam skenario dengan dua pengguna memperbarui model, berikut ini dimungkinkan:
Pengguna A membaca definisi model aset X.
Pengguna B membaca definisi model aset X dan melakukan perubahan, memodifikasi definisi X.
Pengguna A melakukan dan menimpa perubahan yang dibuat oleh pengguna B untuk model aset X, tanpa memverifikasi atau memasukkan perubahan Pengguna B.
Penguncian optimis adalah mekanisme yang digunakan oleh AWS IoT SiteWise untuk mencegah penimpaan yang tidak disengaja seperti skenario di atas. Penguncian optimis adalah strategi untuk memastikan versi model aset saat ini diperbarui atau dihapus, sama dengan versi saat ini di AWS IoT SiteWise. Ini melindungi penulisan model aset agar tidak ditimpa oleh pembaruan yang tidak disengaja.
Ikuti langkah-langkah ini untuk melakukan penulisan model aset dengan penguncian optimis:
Topik
Melakukan penulisan model aset dengan kunci optimis (konsol)
Prosedur di bawah ini menjelaskan cara melakukan penulisan model aset dengan kunci optimis pada versi aktif model aset di konsol.
Navigasikan ke konsol AWS IoT SiteWise
tersebut. Di panel navigasi, pilih Model.
Pilih model aset atau model komponen yang akan diperbarui.
Pilih Edit.
Buat perubahan pada halaman Edit model.
Pilih Simpan.
catatan
Terkadang, satu atau lebih pembaruan model yang berhasil terjadi antara saat pengguna mulai mengedit model, dan menyimpan pengeditan yang dibuat ke model.
Untuk memastikan pengguna tidak sengaja menimpa pembaruan baru yang berhasil, tulisan pengguna ditolak. Konsol menonaktifkan tombol Simpan, dan meminta pengguna untuk menyegarkan halaman Edit model. Pengguna harus memperbarui versi aktif baru dari model lagi. Pengguna harus melakukan langkah-langkah tambahan berikut:
PilihRefresh.
Ikuti langkah 5 dan 6 lagi.
Melakukan penulisan model aset dengan optimistic lock ()AWS CLI
Prosedur di bawah ini menjelaskan cara melakukan penulisan model aset dengan penguncian optimis di. AWS CLI
-
Ambil yang ETag terkait dengan definisi model saat ini
ETag
adalah token unik yang dihasilkan untuk setiap representasi baru dari model aset. Panggilan DescribeAssetModelAPIuntuk mengambil definisi model aset saat ini, dan terkaitETag
dari respons.Selama pembaruan bersamaan, pengguna melakukan pembaruan yang berhasil (model dalam
ACTIVE
status), atau pembaruan yang gagal (model dalamFAILED
status). Untuk memastikan bahwa pengguna tidak sengaja menimpa pembaruan yang berhasil, Anda harus mengambil versi aktif model aset dariVersi model aset, dan mendapatkan nilainya.ETag
Jalankan perintah berikut:
aws iotsitewise describe-asset-model --asset-model-id asset-model-id \ --asset-model-version ACTIVE
Respons mengembalikan struktur berikut:
{ "assetModelId": "
String
", "assetModelArn": "String
", "assetModelName": "String
", ... "eTag": "String
" }catatan
Anda harus mengambil versi terbaru dari model aset dan itu
ETag
agar tidak menimpa pembaruan apa pun. -
Lakukan UPDATE dan DELETE operasi dengan kondisi tulis
Model aset berikut APIs mendukung penguncian optimis:
catatan
Skenario di bawah ini digunakan
UpdateAssetModel
API sebagai referensi. Ketentuan berlaku untuk semua operasi yang tercantum di atas.Skenario di bawah ini menjelaskan kondisi penulisan yang berbeda tergantung pada persyaratan kontrol konkurensi:
-
Jalankan perintah berikut agar tidak menimpa pembaruan yang berhasil. Versi aktif baru tidak boleh ada, karena versi aktif baca terakhir. Ganti
e-tag
dengan yangETag
dikembalikan dalam API operasi yang digunakan dalam pembacaan versi aktif.aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-match e-tag \ --match-for-version-type ACTIVE \ --cli-input-json file://model-payload.json
-
Ketika pembuatan model gagal, versi aktif belum ada untuknya, karena dalam
FAILED
keadaan. Masih dimungkinkan untuk menimpa versi aktif baru yang ada, sebelum perubahan Anda dilakukan. Jalankan perintah berikut untuk tidak menimpa versi aktif baru, ketika versi aktif tidak ada selama pembacaan terakhir Anda.aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-none-match "*" \ --match-for-version-type ACTIVE \ --cli-input-json file://model-payload.json
-
Jalankan perintah berikut untuk menghindari menimpa pembaruan yang berhasil atau tidak berhasil. Perintah ini mendefinisikan kondisi tulis yang memastikan bahwa versi terbaru tidak dibuat sejak versi terbaru Anda dibaca terakhir. Ganti
e-tag
dengan yangETag
dikembalikan dalam API operasi yang digunakan dalam pembacaan versi aktif.aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --if-match eTag \ --match-for-version-type LATEST \ --cli-input-json file://model-payload.json
Jika kondisi tulis dievaluasi
FALSE
, permintaan tulis gagal dengan.PreconditionFailedException
-