Menggunakan Azure Blob Storage pada modul IoT Edge ke perangkat Anda
Berlaku untuk: 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
IoT Hub di langganan Azure Anda.
Perangkat IoT Edge.
Jika Anda tidak menyiapkan perangkat IoT Edge, Anda dapat membuatnya di komputer virtual Azure. Ikuti langkah-langkah di salah satu artikel mulai cepat untuk Membuat perangkat Linux virtual atau Membuat perangkat Windows virtual.
Ekstensi Azure IoT Edge . Alat Azure IoT Edge untuk ekstensi Visual Studio Code berada dalam mode pemeliharaan.
Ekstensi Azure IoT Hub jika menyebarkan dari Visual Studio Code.
Menyebarkan dari portal Azure
Portal Azure memandu Anda melalui pembuatan manifes penyebaran dan mendorong penyebaran ke perangkat IoT Edge.
Pilih perangkat Anda
- Masuk ke portal Azure dan navigasikan ke IoT hub Anda.
- Pilih Perangkat di bawah menu Manajemen perangkat .
- Pilih perangkat IoT Edge target dari daftar.
- 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
Di bagian Modul IoT Edge halaman, pilih menu dropdown Tambahkan dan pilih Modul IoT Edge untuk menampilkan halaman Tambahkan Modul IoT Edge.
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
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.
-
Nama Modul IoT Edge:
Buka tab Opsi Buat Kontainer.
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"}] } } }
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:
- Gunakan pemasangan volume:
my-volume:/blobroot
- gunakan dudukan ikat:
/srv/containerdata:/blobroot
. Pastikan untuk mengikuti langkah-langkah untuk memberikan akses direktori kepada pengguna kontainer
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.
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> } }
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 daristorageContainersForUpload
. Untuk informasi selengkapnya, lihat bagiandeviceToCloudUploadProperties
Menyimpan data di tepi dengan Azure Blob Storage di 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.
Pilih Tambahkan.
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.
- Pilih perangkat IoT Edge yang Anda targetkan dengan penyebaran untuk membuka detailnya.
- 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.
Pilih Lihat>Pallet Perintah.
Di palet perintah, masukkan dan jalankan perintah Azure IoT Edge: Solusi Azure 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.
Buka deployment.template.jsdi di ruang kerja solusi baru Anda dan temukan bagian modul. Buat perubahan konfigurasi berikut:
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"}] } }
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. 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:
- Gunakan pemasangan volume:
my-volume:/blobroot
- gunakan dudukan ikat:
/srv/containerdata:/blobroot
. Pastikan untuk mengikuti langkah-langkah untuk memberikan akses direktori kepada pengguna kontainer
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.
- Gunakan pemasangan volume:
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> } } }
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.
Simpan file deployment.template.json.
Klik kanan deployment.template.json dan pilih Buat Manifes Penyebaran IoT Edge.
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.
Navigasi ke IoT Hub Anda di portal Azure dan pilih Perangkat di bawah menu Manajemen perangkat
Pilih perangkat dengan modul untuk dikonfigurasi.
Pilih Atur Modul.
Di bagian Modul IoT Edge halaman, pilih modul penyimpanan blob.
Pada halaman Perbarui Modul Edge IoT, pilih tab Variabel Lingkungan.
Tambahkan
HTTPS_PROXY
untuk Nama dan URL proksi Anda untuk Nilai.Pilih Perbarui, lalu Tinjau + Buat.
Lihat proksi ditambahkan ke modul dalam manifes penyebaran dan pilih Buat.
Verifikasi pengaturan dengan memilih modul dari halaman detail perangkat, dan di bagian bawah halaman Detail Modul IoT Edge pilih 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.