Bagikan melalui


Menggunakan Azure Blob Storage pada modul IoT Edge ke perangkat Anda

Berlaku untuk:Tanda centang IoT Edge 1.5 IoT Edge 1.5

Penting

IoT Edge 1.5 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai per 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Ada beberapa cara untuk menyebarkan modul ke perangkat IoT Edge dan semuanya berfungsi untuk Azure Blob Storage di modul IoT Edge. Dua metode paling sederhana adalah menggunakan portal Azure atau templat Visual Studio Code.

Prasyarat

Menyebarkan dari portal Azure

Portal Azure memandu Anda melalui pembuatan manifes penyebaran dan mendorong penyebaran ke perangkat IoT Edge.

Pilih perangkat Anda

  1. Masuk ke portal Azure dan navigasikan ke IoT hub Anda.
  2. Pilih Perangkat di bawah menu Manajemen perangkat .
  3. Pilih perangkat IoT Edge target dari daftar.
  4. Pilih Atur Modul.

Mengonfigurasi manifes penerapan

Manifes penyebaran adalah dokumen JSON yang menjelaskan modul mana yang akan disebarkan, bagaimana data mengalir di antara modul, dan properti yang diinginkan dari modul twin. Portal Azure memiliki wizard yang memandu Anda melalui pembuatan manifes penyebaran. Wizard ini memiliki tiga langkah yang diatur ke dalam tab: Modul, Rute, dan Tinjau + Buat.

Tambahkan modul

  1. Di bagian Modul IoT Edge halaman, pilih menu dropdown Tambahkan dan pilih Modul IoT Edge untuk menampilkan halaman Tambahkan Modul IoT Edge.

  2. Pada tab Pengaturan , berikan nama untuk modul lalu tentukan URI gambar kontainer:

    • Nama Modul IoT Edge: azureblobstorageoniotedge
    • URI Citra: mcr.microsoft.com/azure-blob-storage:latest

    Cuplikan layar memperlihatkan tab Pengaturan Modul dari halaman Tambahkan Modul IoT Edge. .

    Jangan pilih Tambahkan hingga Anda menentukan nilai di tab Pengaturan Modul, Opsi Buat Kontainer, dan Pengaturan Modul Kembar seperti yang dijelaskan dalam prosedur ini.

    Penting

    Azure IoT Edge peka huruf besar kecil saat Anda melakukan panggilan ke modul, dan Storage SDK juga default untuk huruf kecil. Mengubah nama menjadi huruf kecil membantu memastikan bahwa koneksi Anda ke Azure Blob Storage pada modul IoT Edge tidak terganggu.

  3. Buka tab Opsi Buat Kontainer.

  4. Salin dan tempel JSON berikut ke dalam kotak, untuk memberikan informasi akun penyimpanan dan dudukan untuk penyimpanan di perangkat Anda.

    {
      "Env":[
        "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
        "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds":[
            "<mount>"
        ],
        "PortBindings":{
          "11002/tcp":[{"HostPort":"11002"}]
        }
      }
    }
    

    Cuplikan layar memperlihatkan tab Opsi Buat Kontainer dari halaman Tambahkan Modul IoT Edge..

  5. Perbarui JSON yang Anda salin ke dalam Opsi Buat Kontainer dengan informasi berikut:

    • Ganti <local storage account name> dengan nama yang bisa Anda ingat. Panjang nama akun harus 3 hingga 24 karakter, dengan huruf kecil dan angka. Tidak ada spasi.

    • Ganti <local storage account key> dengan kunci base64 64-byte. Anda dapat menghasilkan kunci dengan alat seperti Generator Base64. Anda menggunakan kredensial ini untuk mengakses penyimpanan blob dari modul lain.

    • Ganti <mount> sesuai dengan sistem operasi kontainer Anda. Berikan nama volume atau jalur absolut ke direktori yang ada di perangkat IoT Edge Tempat modul blob menyimpan datanya. Dudukan penyimpanan memetakan lokasi di perangkat yang Anda sediakan ke lokasi yang ditetapkan dalam modul.

    Untuk kontainer Linux, formatnya adalah <jalur penyimpanan atau volume>:/blobroot Anda. Contohnya:

    Penting

    • Jangan mengubah paruh kedua nilai dudukan penyimpanan, yang menunjuk ke lokasi tertentu di Blob Storage pada modul IoT Edge. Pemasangan penyimpanan harus selalu diakhir dengan :/blobroot untuk kontainer Linux.

    • IoT Edge tidak menghapus volume yang terpasang pada kontainer modul. Perilaku ini adalah bagian rencana, karena memungkinkan mempertahankan data di seluruh instans kontainer seperti skenario peningkatan. Namun, jika volume ini dibiarkan tidak digunakan, maka dapat menyebabkan kelelahan ruang disk dan kesalahan sistem berikutnya. Jika Anda menggunakan volume docker dalam skenario Anda, maka kami mendorong Anda untuk menggunakan alat docker seperti pangkas volume docker dan rm volume docker untuk menghapus volume yang tidak digunakan, terutama untuk skenario produksi.

  6. Di tab Pengaturan Kembar Modul, salin JSON berikut ini dan tempelkan ke dalam kotak.

    {
      "deviceAutoDeleteProperties": {
        "deleteOn": <true, false>,
        "deleteAfterMinutes": <timeToLiveInMinutes>,
        "retainWhileUploading": <true,false>
      },
      "deviceToCloudUploadProperties": {
        "uploadOn": <true, false>,
        "uploadOrder": "<NewestFirst, OldestFirst>",
        "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>; EndpointSuffix=<your end point suffix>",
        "storageContainersForUpload": {
          "<source container name1>": {
            "target": "<your-target-container-name>"
          }
        },
        "deleteAfterUpload": <true,false>
      }
    }
    
  7. Konfigurasikan setiap properti dengan nilai yang sesuai, seperti yang ditunjukkan oleh tempat penampung. Jika Anda menggunakan simulator IoT Edge, atur nilai ke variabel lingkungan terkait untuk properti ini seperti yang dijelaskan oleh deviceToCloudUploadProperties dan deviceAutoDeleteProperties.

    Tip

    Nama untuk kontainer Anda target memiliki batasan penamaan, misalnya menggunakan $ awalan tidak didukung. Untuk melihat semua batasan, lihat Nama Kontainer.

    Catatan

    Jika target kontainer Anda tidak bernama atau null di dalam storageContainersForUpload, nama default akan ditetapkan ke target. Jika Anda ingin berhenti mengunggah ke kontainer, itu harus dihapus sepenuhnya dari storageContainersForUpload. Untuk informasi selengkapnya, lihat bagian deviceToCloudUploadPropertiesMenyimpan data di tepi dengan Azure Blob Storage di IoT Edge.

    Cuplikan layar memperlihatkan tab Pengaturan Modul Kembar dari halaman Tambahkan Modul IoT Edge.

    Untuk informasi tentang mengonfigurasi deviceToCloudUploadProperties dan deviceAutoDeleteProperties setelah modul Anda disebarkan, lihat Mengedit Module Twin. Untuk informasi selengkapnya tentang properti yang diinginkan, lihat Menentukan atau memperbarui properti yang diinginkan.

  8. Pilih Tambahkan.

  9. Pilih Berikutnya: Rute untuk melanjutkan ke bagian rute.

Menentukan rute

Pertahankan rute default, dan pilih Berikutnya: Tinjau + buat untuk melanjutkan ke bagian peninjauan.

Meninjau penyebaran

Bagian peninjauan menunjukkan manifes penerapan JSON yang dibuat berdasarkan pilihan Anda di dua bagian sebelumnya. Ada dua modul yang dinyatakan tidak Anda tambahkan: $edgeAgent dan $edgeHub. Kedua modul ini membentuk runtime IoT Edge dan diperlukan secara default dalam setiap penyebaran.

Tinjau informasi penyebaran Anda, lalu pilih Buat.

Memverifikasi penyebaran Anda

Setelah membuat penyebaran, Anda kembali ke halaman Perangkat hub IoT Anda.

  1. Pilih perangkat IoT Edge yang Anda targetkan dengan penyebaran untuk membuka detailnya.
  2. Dalam detail perangkat, verifikasi bahwa modul penyimpanan blob dicantumkan sebagai Ditentukan dalam penyebaran dan Dilaporkan oleh perangkat.

Mungkin perlu beberapa saat agar modul dimulai di perangkat dan kemudian dilaporkan kembali ke Azure IoT Hub. Refresh halaman untuk melihat status yang diperbarui.

Menyebarkan dari Visual Studio Code

Azure IoT Edge menyediakan templat di Visual Studio Code untuk membantu Anda mengembangkan solusi edge. Gunakan langkah-langkah berikut untuk membuat solusi IoT Edge baru dengan modul penyimpanan blob dan untuk mengonfigurasi manifes penyebaran.

Penting

Ekstensi Azure IoT Edge Visual Studio Code berada dalam mode pemeliharaan.

  1. Pilih Lihat>Pallet Perintah.

  2. Di palet perintah, masukkan dan jalankan perintah Azure IoT Edge: Solusi Azure IoT Edge baru.

    Cuplikan layar memperlihatkan cara menjalankan Solusi IoT Edge Baru.

    Ikuti permintaan di palet perintah untuk membuat solusi.

    Bidang Nilai
    Pilih folder Pilih lokasi pada komputer pengembangan Anda untuk Visual Studio Code guna membuat file solusi.
    Beri nama solusi Masukkan nama deskriptif untuk solusi Anda atau terima EdgeSolution default.
    Memilih templat modul Pilih Modul yang Ada (Masukkan URL citra penuh).
    Beri nama modul Masukkan nama huruf kecil untuk modul Anda, seperti azureblobstorageoniotedge.

    Penting menggunakan nama huruf kecil untuk Azure Blob Storage pada modul IoT Edge. IoT Edge peka huruf besar/kecil jika mengacu pada modul, dan default SDK Penyimpanan ke huruf kecil.
    Beri citra Docker untuk modul Beri URI Citra: mcr.microsoft.com/azure-blob-storage:latest

    Visual Studio Code mengambil informasi yang Anda berikan, membuat solusi IoT Edge, lalu memuatnya di jendela baru. Templat solusi membuat templat manifes penyebaran yang mencakup gambar modul penyimpanan blob Anda, tetapi Anda perlu mengonfigurasi opsi buat modul.

  3. Buka deployment.template.jsdi di ruang kerja solusi baru Anda dan temukan bagian modul. Buat perubahan konfigurasi berikut:

    1. Salin dan tempel kode berikut ke createOptions bidang untuk modul penyimpanan blob:

      
      ```json
      "Env":[
       "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
       "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds": ["<mount>"],
        "PortBindings":{
          "11002/tcp": [{"HostPort":"11002"}]
        }
      }
      

      Cuplikan layar memperlihatkan cara memperbarui modul createOptions di Visual Studio Code.

  4. Ganti <local storage account name> dengan nama yang bisa Anda ingat. Panjang nama akun harus 3 hingga 24 karakter, dengan huruf kecil dan angka. Tidak ada spasi.

  5. Ganti <local storage account key> dengan kunci base64 64-byte. Anda dapat menghasilkan kunci dengan alat seperti Generator Base64. Anda menggunakan kredensial ini untuk mengakses penyimpanan blob dari modul lain.

  6. Ganti <mount> sesuai dengan sistem operasi kontainer Anda. Beri nama volume atau jalur absolut ke direktori perangkat IoT Edge Anda di mana Anda ingin modul blob menyimpan datanya. Dudukan penyimpanan memetakan lokasi di perangkat yang Anda sediakan ke lokasi yang ditetapkan dalam modul.

    Untuk kontainer Linux, formatnya adalah <jalur penyimpanan atau volume>:/blobroot Anda. Contohnya:

    Penting

    • Jangan mengubah paruh kedua nilai dudukan penyimpanan, yang menunjuk ke lokasi tertentu di Blob Storage pada modul IoT Edge. Pemasangan penyimpanan harus selalu diakhir dengan :/blobroot untuk kontainer Linux.

    • IoT Edge tidak menghapus volume yang terpasang pada kontainer modul. Perilaku ini adalah bagian rencana, karena memungkinkan mempertahankan data di seluruh instans kontainer seperti skenario peningkatan. Namun, jika volume ini dibiarkan tidak digunakan, maka dapat menyebabkan kelelahan ruang disk dan kesalahan sistem berikutnya. Jika Anda menggunakan volume docker dalam skenario Anda, maka kami mendorong Anda untuk menggunakan alat docker seperti pangkas volume docker dan rm volume docker untuk menghapus volume yang tidak digunakan, terutama untuk skenario produksi.

  7. Konfigurasikan deviceToCloudUploadProperties dan deviceAutoDeleteProperties untuk modul Anda dengan menambahkan JSON berikut ke file deployment.template.json. Konfigurasikan setiap properti dengan nilai yang sesuai dan simpan file. Jika Anda menggunakan simulator IoT Edge, atur nilai ke variabel lingkungan terkait untuk properti ini, yang dapat Anda temukan di bagian penjelasan deviceToCloudUploadProperties dan deviceAutoDeleteProperties

    "<your azureblobstorageoniotedge module name>":{
      "properties.desired": {
        "deviceAutoDeleteProperties": {
          "deleteOn": <true, false>,
          "deleteAfterMinutes": <timeToLiveInMinutes>,
          "retainWhileUploading": <true, false>
        },
        "deviceToCloudUploadProperties": {
          "uploadOn": <true, false>,
          "uploadOrder": "<NewestFirst, OldestFirst>",
          "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>",
          "storageContainersForUpload": {
            "<source container name1>": {
              "target": "<target container name1>"
            }
          },
          "deleteAfterUpload": <true, false>
        }
      }
    }
    

    Cuplikan layar memperlihatkan cara mengatur properti yang diinginkan untuk azureblobstorageoniotedge di Visual Studio Code.

    Untuk informasi tentang mengonfigurasi deviceToCloudUploadProperties dan deviceAutoDeleteProperties setelah modul Anda disebarkan, lihat Mengedit Module Twin. Untuk informasi selengkapnya tentang opsi pembuatan kontainer, kebijakan hidupkan ulang, dan status yang diinginkan, lihat Properti yang diinginkan EdgeAgent.

  8. Simpan file deployment.template.json.

  9. Klik kanan deployment.template.json dan pilih Buat Manifes Penyebaran IoT Edge.

  10. Visual Studio Code mengambil informasi yang Anda berikan deployment.template.json dan menggunakannya untuk membuat file manifes penyebaran baru. Manifes penyebaran dibuat dalam folder konfigurasi baru di ruang kerja solusi Anda. Setelah memiliki file tersebut, Anda dapat mengikuti langkah-langkah dalam Menyebarkan modul Azure IoT Edge dengan Azure CLI 2.0.

Menerapkan beberapa instans modul

Jika Anda ingin menyebarkan beberapa instans Azure Blob Storage pada modul IoT Edge, Anda perlu menyediakan jalur penyimpanan yang berbeda dan mengubah nilai HostPort yang mengikat modul. Modul penyimpanan blob selalu mengekspos port 11002 dalam kontainer, tetapi Anda dapat mendeklarasikan port mana yang terikat dengan host.

Edit Opsi Buat Kontainer (di portal Azure) atau bidang createOptions (pada file deployment.template.json di Visual Studio Code) untuk mengubah nilai HostPort:

"PortBindings":{
  "11002/tcp": [{"HostPort":"<port number>"}]
}

Saat Anda menyambungkan ke modul penyimpanan blob tambahan, ubah titik akhir untuk menunjuk ke port host yang diperbarui.

Mengonfigurasikan dukungan proksi

Jika organisasi Anda menggunakan server proksi, Anda perlu mengonfigurasi dukungan proksi untuk modul runtime edgeAgent dan edgeHub. Proses ini melibatkan dua tugas:

  • Mengonfigurasikan daemon runtime dan agen IoT Edge pada perangkat.
  • Mengatur variabel lingkungan HTTPS_PROXY untuk modul dalam file JSON manifes penyebaran.

Proses ini dijelaskan dalam Mengonfigurasi perangkat IoT Edge untuk berkomunikasi melalui server proksi.

Selain itu, modul penyimpanan blob juga memerlukan pengaturan HTTPS_PROXY dalam file penyebaran manifes. Anda dapat secara langsung mengedit file manifes penyebaran, atau menggunakan portal Azure.

  1. Navigasi ke IoT Hub Anda di portal Azure dan pilih Perangkat di bawah menu Manajemen perangkat

  2. Pilih perangkat dengan modul untuk dikonfigurasi.

  3. Pilih Atur Modul.

  4. Di bagian Modul IoT Edge halaman, pilih modul penyimpanan blob.

  5. Pada halaman Perbarui Modul Edge IoT, pilih tab Variabel Lingkungan.

  6. Tambahkan HTTPS_PROXY untuk Nama dan URL proksi Anda untuk Nilai.

    Cuplikan layar memperlihatkan panel Perbarui Modul IoT Edge tempat Anda bisa memasukkan nilai yang ditentukan.

  7. Pilih Perbarui, lalu Tinjau + Buat.

  8. Lihat proksi ditambahkan ke modul dalam manifes penyebaran dan pilih Buat.

  9. Verifikasi pengaturan dengan memilih modul dari halaman detail perangkat, dan di bagian bawah halaman Detail Modul IoT Edge pilih tab Variabel Lingkungan.

    Cuplikan layar memperlihatkan tab Variabel Lingkungan.

Langkah berikutnya

Pelajari selengkapnya tentang Azure Blob Storage di IoT Edge.

Untuk informasi selengkapnya tentang cara kerja manifes penyebaran dan cara membuatnya, lihat Memahami cara modul IoT Edge dapat digunakan, dikonfigurasi, dan digunakan kembali.