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 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:

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

    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:

  7. PilihRefresh.

  8. 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

  1. Ambil yang ETag terkait dengan definisi model saat ini

    ETagadalah token unik yang dihasilkan untuk setiap representasi baru dari model aset. Panggilan DescribeAssetModelAPIuntuk 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 yang gagal (model dalam FAILED 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.

  2. 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 yang ETag 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 yang ETag 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 dievaluasiFALSE, permintaan tulis gagal dengan. PreconditionFailedException