View a markdown version of this page

Penguncian optimis untuk penulisan model aset - AWS IoT SiteWise

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:

  1. Baca definisi model aset saat ini.

  2. Edit definisi model aset dengan perubahan yang diperlukan.

  3. 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 komit dan mengganti perubahan yang dibuat oleh pengguna B untuk model aset X, tanpa memverifikasi atau memasukkan perubahan Pengguna B.

Penguncian optimis adalah mekanisme yang digunakan AWS IoT SiteWise untuk mencegah penulisan yang tidak disengaja seperti skenario di atas. Penguncian optimis adalah strategi untuk memastikan versi model aset saat ini yang diperbarui atau dihapus, sama dengan versi saat ini di AWS IoT SiteWise. Ini melindungi penulisan model aset agar tidak diganti oleh pembaruan yang tidak disengaja.

Ikuti langkah-langkah ini untuk melakukan penulisan model aset dengan penguncian optimis:

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.

  1. Navigasikan ke konsol AWS IoT SiteWise tersebut.

  2. Di panel navigasi, pilih Model.

  3. Pilih model aset atau model komponen yang akan diperbarui.

  4. Pilih Edit.

  5. Buat perubahan pada halaman Edit model.

  6. Pilih Simpan.

    catatan

    Kadang-kadang, satu atau lebih pembaruan model yang berhasil terjadi antara saat pengguna mulai mengedit model, dan menyimpan pengeditan yang dilakukan ke model.

    Untuk memastikan pengguna tidak secara tidak sengaja mengganti 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 model lagi. Pengguna harus melakukan langkah-langkah tambahan berikut:

  7. PilihRefresh.

  8. Ikuti langkah 5 dan 6 lagi.

Melakukan penulisan model aset dengan kunci optimis (AWS CLI)

Prosedur di bawah ini menjelaskan cara melakukan penulisan model aset dengan penguncian optimis di dalamnya AWS CLI.

  1. Ambil ETag yang terkait dengan definisi model saat ini

    ETagadalah token unik yang dihasilkan untuk setiap representasi baru dari model aset. Panggil DescribeAssetModel API untuk mengambil definisi model aset saat ini, dan terkait ETag dari respons.

    Selama pembaruan bersamaan, pengguna melakukan pembaruan yang berhasil (model dalam ACTIVE status), atau pembaruan tidak berhasil (model dalam FAILED status). Untuk memastikan bahwa pengguna tidak secara tidak sengaja mengganti pembaruan yang berhasil, Anda harus mengambil versi aktif model aset dariVersi model aset, dan mendapatkan nil ETag ainya.

    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 mengganti pembaruan apa pun.

  2. Lakukan operasi UPDATE dan DELETE dengan kondisi tulis

    API model aset berikut mendukung penguncian optimis:

    catatan

    Skenario di bawah ini menggunakan 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 mengganti pembaruan yang berhasil. Versi aktif baru tidak boleh ada, sejak versi aktif terakhir dibaca. Ganti e-tag dengan yang ETag dikembalikan dalam operasi API 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 mungkin untuk mengganti versi aktif baru yang ada, sebelum perubahan Anda dilakukan. Jalankan perintah berikut untuk tidak mengganti 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 penulisan pembaruan yang berhasil atau tidak berhasil. Perintah ini mendefinisikan kondisi tulis yang memastikan bahwa versi terbaru tidak dibuat sejak terakhir Anda membaca versi terbaru. Ganti e-tag dengan yang ETag dikembalikan dalam operasi API 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 keFALSE, permintaan tulis gagal denganPreconditionFailedException.