Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Anda dapat menyebarkan simpul Azure IoT Edge di seluruh jaringan yang diatur dalam lapisan hierarkis. Setiap lapisan dalam hierarki adalah perangkat gateway yang menangani pesan dan permintaan dari perangkat di lapisan di bawahnya. Konfigurasi ini juga dikenal sebagai tepi berlapis.
Anda dapat menyusun hierarki perangkat sehingga hanya lapisan atas yang memiliki konektivitas ke cloud, dan lapisan bawah hanya dapat berkomunikasi dengan lapisan utara dan selatan yang berdekatan. Pelapisan jaringan ini adalah dasar dari sebagian besar jaringan industri, yang mengikuti standar ISA-95.
Tutorial ini memandu Anda membuat hierarki perangkat IoT Edge menggunakan IoT Edge untuk Linux di Windows, menyebarkan kontainer runtime IoT Edge ke perangkat Anda, dan mengonfigurasi perangkat Anda secara lokal. Anda melakukan tugas berikut:
- Membuat dan menentukan hubungan dalam hierarki perangkat IoT Edge.
- Mengonfigurasi runtime IoT Edge pada perangkat dalam hierarki Anda.
- Memasang sertifikat yang konsisten di seluruh hierarki perangkat Anda.
- Menambahkan beban kerja ke perangkat dalam hierarki Anda.
- Gunakan modul Proksi IoT Edge API untuk merutekan lalu lintas HTTP dengan aman melalui satu port dari perangkat lapisan bawah Anda.
Tip
Tutorial ini mencakup gabungan langkah manual dan otomatis untuk menunjukkan fitur IoT Edge bersarang.
Jika Anda ingin melihat sepenuhnya otomatis dalam menyiapkan hierarki perangkat IoT Edge, Anda memandu skrip Anda sendiri berdasarkan sampel Azure IoT Edge for Industrial IoT berskrip. Skenario skrip ini menyebarkan komputer virtual Azure sebagai perangkat yang dikonfigurasi sebelumnya untuk mensimulasikan lingkungan pabrik.
Jika Anda ingin melihat secara mendalam langkah-langkah manual untuk membuat dan mengelola hierarki perangkat IoT Edge, lihat panduan cara membuat dan mengelola hierarki gateway perangkat IoT Edge.
Dalam tutorial ini, lapisan jaringan berikut ditentukan:
Lapisan atas: Perangkat IoT Edge pada lapisan ini dapat terhubung langsung ke cloud.
Lapisan bawah: Perangkat IoT Edge pada lapisan di bawah lapisan atas tidak dapat terhubung langsung ke cloud. Lapisan ini perlu melalui satu atau beberapa perangkat IoT Edge perantara untuk mengirim dan menerima data.
Tutorial ini menggunakan hierarki dua perangkat untuk kesederhanaan. Perangkat lapisan atas mewakili perangkat di lapisan atas hierarki yang dapat terhubung langsung ke cloud. Perangkat ini disebut sebagai perangkat induk. Perangkat lapisan bawah mewakili perangkat di lapisan bawah hierarki yang tidak dapat terhubung langsung ke cloud. Anda dapat menambahkan lebih banyak perangkat untuk mewakili lingkungan produksi Anda, sesuai kebutuhan. Perangkat pada lapisan bawah disebut sebagai perangkat anak.
Catatan
Perangkat anak dapat menjadi perangkat hilir atau perangkat gateway dalam topologi berlapis.
Prasyarat
Untuk membuat hierarki perangkat IoT Edge, Anda memerlukan:
- Shell Bash di Azure Cloud Shell menggunakan Azure CLI v2.3.1 dengan ekstensi Azure IoT v0.10.6 atau versi yang lebih baru yang terpasang. Tutorial ini menggunakan Azure Cloud Shell. Untuk melihat versi modul dan ekstensi Azure CLI Anda saat ini, jalankan az version.
- Dua perangkat Windows yang menjalankan Azure IoT Edge untuk Linux di Windows. Kedua perangkat harus disebarkan menggunakan sakelar virtual eksternal.
Tip
Dimungkinkan untuk menggunakan sakelar virtual internal atau default jika penerusan port dikonfigurasi pada OS host Windows. Namun, untuk kesederhanaan tutorial ini, kedua perangkat harus menggunakan sakelar virtual eksternal dan terhubung ke jaringan eksternal yang sama.
Untuk informasi selengkapnya tentang jaringan, lihat Azure IoT Edge untuk Linux di jaringan Windows dan Konfigurasi jaringan untuk Azure IoT Edge untuk Linux di Windows.
Jika Anda perlu menyiapkan perangkat EFLOW pada DMZ, lihat Cara mengonfigurasi Azure IoT Edge untuk Linux pada konfigurasi Windows Industrial IoT & DMZ.
- Akun Azure dengan langganan yang valid. Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.
- IoT Hub tingkat gratis atau standar di Azure.
- Pastikan bahwa port berikut terbuka masuk untuk semua perangkat kecuali perangkat lapisan terendah: 443, 5671, 8883:
- 443: Digunakan antara hub tepi induk dan anak untuk panggilan REST API dan untuk menarik citra kontainer docker.
- 5671, 8883: Digunakan untuk AMQP dan MQTT.
Tip
Untuk informasi selengkapnya tentang firewall komputer virtual EFLOW, lihat IoT Edge untuk Linux di keamanan Windows.
Membuat hierarki perangkat IoT Edge Anda
Perangkat IoT Edge membentuk lapisan hierarki Anda. Tutorial ini membuat hierarki dua perangkat IoT Edge: perangkat lapisan atas dan perangkat lapisan bawah. Anda dapat membuat lebih banyak perangkat hilir sesuai kebutuhan.
Untuk membuat dan mengonfigurasi hierarki perangkat IoT Edge, Anda menggunakan perintah az iot edge devices create Azure CLI. Perintah menyederhanakan konfigurasi hierarki dengan mengotomatiskan dan membungkus beberapa langkah:
- Membuat perangkat di IoT Hub Anda
- Mengatur hubungan induk-turunan untuk mengotorisasi komunikasi antar perangkat
- Menerapkan manifes penyebaran ke setiap perangkat
- Menghasilkan rantai sertifikat untuk setiap perangkat guna membangun komunikasi yang aman di antaranya
- Menghasilkan file konfigurasi untuk setiap perangkat
Membuat konfigurasi perangkat
Anda membuat sekelompok perangkat edge berlapis dengan berisi perangkat induk dengan satu perangkat anak. Dalam tutorial ini, kami menggunakan manifes penyebaran sampel dasar. Untuk contoh skenario lain, tinjau contoh templat konfigurasi.
Sebelum Anda menggunakan perintah buat perangkat az iot edge, Anda perlu menentukan manifes penyebaran untuk lapisan atas dan perangkat lapisan bawah. Unduh file sampel deploymentTopLayer.json ke komputer lokal Anda.
Manifes penyebaran perangkat lapisan atas menentukan modul Proksi API IoT Edge dan mendeklarasikan rute dari perangkat lapisan bawah ke IoT Hub.
Unduh file sampel deploymentLowerLayer.json ke komputer lokal Anda.
Manifes penyebaran perangkat lapisan bawah mencakup modul sensor suhu yang disimulasikan dan mendeklarasikan rute ke perangkat lapisan atas. Anda dapat melihat di dalam bagian systemModules bahwa modul runtime diatur untuk menarik dari $upstream:443, bukan mcr.microsoft.com. Perangkat lapisan bawah mengirim permintaan gambar Docker modul Proksi API IoT Edge pada port 443, karena tidak dapat langsung menarik gambar dari cloud. Modul lain yang disebarkan ke perangkat lapisan bawah, modul Sensor Suhu Simulasi, juga membuat permintaan gambarnya ke
$upstream:443
.Untuk informasi selengkapnya tentang cara membuat manifes penyebaran lapisan bawah, lihat Menyambungkan perangkat Azure IoT Edge untuk membuat hierarki.
Di Azure Cloud Shell, gunakan perintah az iot edge devices create Azure CLI untuk membuat perangkat di IoT Hub dan bundel konfigurasi untuk setiap perangkat dalam hierarki Anda. Ganti tempat penampung berikut dengan nilai yang sesuai:
Placeholder Deskripsi <nama hub> Nama IoT Hub Anda. <config-bundle-output-path> Jalur folder tempat Anda ingin menyimpan bundel konfigurasi. <nama-perangkat-induk> Nama ID perangkat induk lapisan atas. <parent-deployment-manifest> File manifes penyebaran perangkat induk. <parent-fqdn-or-ip> Nama domain atau alamat IP perangkat induk yang sepenuhnya memenuhi syarat (FQDN). <child-device-name> Nama ID perangkat anak lapisan bawah. <child-deployment-manifest> File manifes penyebaran perangkat anak. <child-fqdn-or-ip> Nama domain atau alamat IP perangkat anak yang sepenuhnya memenuhi syarat (FQDN). az iot edge devices create \ --hub-name <hub-name> \ --output-path <config-bundle-output-path> \ --default-edge-agent "mcr.microsoft.com/azureiotedge-agent:1.5" \ --device id=<parent-device-name> \ deployment=<parent-deployment-manifest> \ hostname=<parent-fqdn-or-ip> \ --device id=child-1 \ parent=parent-1 \ deployment=<child-deployment-manifest> \ hostname=<child-fqdn-or-ip>
Misalnya, perintah berikut membuat hierarki dua perangkat IoT Edge di IoT Hub. Perangkat lapisan atas bernama parent-1 dan perangkat lapisan bawah bernama child-1*. Perintah menyimpan bundel konfigurasi untuk setiap perangkat di direktori output . Perintah ini juga menghasilkan sertifikat pengujian yang ditandatangani sendiri dan menyertakannya dalam bundel konfigurasi. Bundel konfigurasi diinstal pada setiap perangkat menggunakan skrip penginstalan.
az iot edge devices create \ --hub-name my-iot-hub \ --output-path ./output \ --default-edge-agent "mcr.microsoft.com/azureiotedge-agent:1.5" \ --device id=parent-1 \ deployment=./deploymentTopLayer.json \ hostname=10.0.0.4 \ --device id=child-1 \ parent=parent-1 \ deployment=./deploymentLowerLayer.json \ hostname=10.1.0.4
Setelah menjalankan perintah, Anda dapat menemukan bundel konfigurasi perangkat di direktori output. Contohnya:
PS C:\nested-edge\output> dir
Directory: C:\nested-edge\output
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/10/2023 4:12 PM 7192 child-1.tgz
-a--- 4/10/2023 4:12 PM 6851 parent-1.tgz
Anda dapat menggunakan sertifikat dan kunci Anda sendiri yang diteruskan sebagai argumen ke perintah atau membuat hierarki perangkat yang lebih kompleks. Untuk informasi selengkapnya tentang membuat perangkat berlapis menggunakan perintah az , lihat membuat perangkat az iot edge. Jika Anda tidak terbiasa dengan bagaimana sertifikat digunakan dalam skenario gateway, lihat bagian sertifikat panduan.
Dalam tutorial ini, Anda menggunakan argumen sebaris untuk membuat perangkat dan bundel konfigurasi. Anda juga dapat menggunakan file konfigurasi dalam format YAML atau JSON. Untuk contoh file konfigurasi, lihat contoh sample_devices_config.yaml.
Mengonfigurasi runtime IoT Edge
Selain provisi perangkat Anda, langkah konfigurasi menetapkan komunikasi tepercaya antara perangkat dalam hierarki Anda menggunakan sertifikat yang Anda buat sebelumnya. Langkah tersebut juga mulai menetapkan struktur jaringan hierarki Anda. Perangkat lapisan atas mempertahankan konektivitas internet, memungkinkannya untuk menarik gambar untuk runtimenya dari cloud, sementara perangkat lapisan bawah merutekan melalui perangkat lapisan atas untuk mengakses gambar-gambar ini.
Untuk mengonfigurasi runtime IoT Edge, Anda perlu menerapkan bundel konfigurasi ke perangkat Anda. Konfigurasi berbeda antara perangkat lapisan atas dan perangkat lapisan bawah, jadi perhatikan file konfigurasi perangkat yang Anda terapkan ke setiap perangkat.
Setiap perangkat memerlukan bundel konfigurasi yang sesuai. Anda dapat menggunakan drive USB atau salinan file aman untuk memindahkan bundel konfigurasi ke setiap perangkat. Anda perlu menyalin bundel konfigurasi ke OS host Windows dari setiap perangkat EFLOW lalu menyalinnya ke VM EFLOW.
Peringatan
Pastikan untuk mengirim bundel konfigurasi yang benar ke setiap perangkat.
Konfigurasi perangkat lapisan atas
Sambungkan ke perangkat host Windows tingkat atas Anda dan salin file parent-1.tzg ke perangkat.
Mulai sesi PowerShell yang ditinggikan menggunakan Jalankan sebagai Administrator.
Salin parent-1.tzg ke dalam VM EFLOW.
Copy-EflowVmFile -fromFile parent-1.tzg -toFile ~/ -pushFile
Menyambungkan ke komputer virtual EFLOW Anda
Connect-EflowVm
Ekstrak arsip bundel konfigurasi. Misalnya, gunakan perintah tar untuk mengekstrak file arsip induk-1 :
tar -xzf ./parent-1.tgz
Atur izin eksekusi untuk skrip penginstalan.
chmod +x install.sh
Jalankan skrip install.sh.
sudo sh ./install.sh
Terapkan izin sertifikat yang benar dan mulai ulang runtime IoT Edge.
sudo chmod -R 755 /etc/aziot/certificates/ sudo iotedge system restart
Periksa apakah semua layanan IoT Edge berjalan dengan benar.
sudo iotedge system status
Terakhir, tambahkan aturan firewall yang sesuai untuk mengaktifkan konektivitas antara perangkat lapisan bawah dan perangkat lapisan atas.
sudo iptables -A INPUT -p tcp --dport 5671 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 8883 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT sudo iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT sudo iptables-save | sudo tee /etc/systemd/scripts/ip4save
Jalankan pemeriksaan konfigurasi dan konektivitas di perangkat Anda.
sudo iotedge check
Di perangkat lapisan atas, pertimbangkan untuk melihat output dengan beberapa evaluasi yang lolos. Anda mungkin melihat beberapa peringatan tentang kebijakan log dan, bergantung pada jaringan Anda, kebijakan DNS.
Jika Anda ingin melihat lebih dekat perubahan yang dibuat pada file konfigurasi perangkat, lihat bagian panduan cara mengonfigurasi IoT Edge di perangkat.
Konfigurasi perangkat lapisan bawah
Sambungkan ke perangkat host Windows tingkat bawah Anda dan salin file child-1.tzg ke perangkat.
Mulai sesi PowerShell yang ditinggikan menggunakan Jalankan sebagai Administrator.
Salin child-1.tzg ke VM EFLOW.
Copy-EflowVmFile -fromFile child-1.tzg -toFile ~/ -pushFile
Menyambungkan ke komputer virtual EFLOW Anda
Connect-EflowVm
Ekstrak arsip bundel konfigurasi. Misalnya, gunakan perintah tar untuk mengekstrak file arsip child-1 :
tar -xzf ./child-1.tgz
Atur izin eksekusi untuk skrip penginstalan.
chmod +x install.sh
Jalankan skrip install.sh.
sudo sh ./install.sh
Terapkan izin sertifikat yang benar dan mulai ulang runtime IoT Edge.
sudo chmod -R 755 /etc/aziot/certificates/ sudo iotedge system restart
Periksa apakah semua layanan IoT Edge berjalan dengan benar.
sudo iotedge system status
Jalankan pemeriksaan konfigurasi dan konektivitas di perangkat Anda. Untuk perangkat lapisan bawah, gambar diagnostik harus dilewatkan secara manual dalam perintah:
sudo iotedge check --diagnostics-image-name <parent_device_fqdn_or_ip>:443/azureiotedge-diagnostics:1.2
Jika Anda menyelesaikan langkah-langkah sebelumnya dengan benar, Anda dapat memverifikasi bahwa perangkat Anda dikonfigurasi dengan benar. Setelah puas konfigurasi Anda benar di setiap perangkat, Anda siap untuk melanjutkan.
Penyebaran modul perangkat
Penyebaran modul untuk perangkat Anda diterapkan saat perangkat dibuat di IoT Hub. Perintah buat perangkat az iot edge menerapkan file JSON penyebaran untuk perangkat lapisan atas dan bawah. Setelah penyebaran tersebut selesai, perangkat lapisan bawah menggunakan modul Proksi API IoT Edge untuk menarik gambar yang diperlukan.
Selain modul runtime IoT Edge Agent dan IoT Edge Hub, perangkat lapisan atas menerima modul registri Docker dan modul Proksi IoT Edge API.
Modul registri Docker mengarah ke Azure Container Registry yang sudah ada. Dalam hal ini, REGISTRY_PROXY_REMOTEURL
mengarah ke Microsoft Container Registry. Secara default, registri Docker mendengarkan pada port 5000.
Modul Proksi IoT Edge API merutekan permintaan HTTP ke modul lain, yang memungkinkan perangkat lapisan bawah menarik gambar kontainer atau mendorong blob ke penyimpanan. Dalam tutorial ini, modul ini berkomunikasi di port 443 dan dikonfigurasi untuk mengirim rute permintaan pull citra kontainer Docker ke modul registri Docker Anda pada port 5000. Selain itu, setiap permintaan pengunggahan penyimpanan blob dirutekan ke modul AzureBlobStorageonIoTEdge pada port 11002. Untuk informasi selengkapnya tentang modul Proksi IoT Edge API dan cara mengonfigurasinya, lihat panduan cara mengonfigurasinya dalam modul.
Jika Anda ingin melihat cara membuat penyebaran seperti ini melalui portal Azure atau Azure Cloud Shell, lihat bagian perangkat lapisan atas dalam panduan cara pembuatan.
Anda dapat melihat status modul Anda menggunakan perintah:
az iot hub module-twin show --device-id <edge-device-id> --module-id '$edgeAgent' --hub-name <iot-hub-name> --query "properties.reported.[systemModules, modules]"
Perintah ini menghasilkan semua properti edgeAgent yang dilaporkan. Berikut adalah beberapa hal yang berguna untuk memantau status perangkat: status runtime, waktu mulai runtime, waktu keluar terakhir runtime, jumlah mulai ulang runtime.
Anda juga dapat melihat status modul Anda di portal Azure. Buka bagian Perangkat di IoT Hub Anda untuk melihat perangkat dan modul Anda.
Melihat data yang dibuat
Modul Sensor Suhu Simulasi yang Anda dorong menghasilkan contoh data lingkungan. Modul ini mengirim pesan yang mencakup suhu dan kelembaban sekitar, suhu dan tekanan mesin, dan tanda waktu.
Anda juga dapat melihat pesan ini melalui Azure Cloud Shell:
az iot hub monitor-events -n <iot-hub-name> -d <lower-layer-device-name>
Contohnya:
az iot hub monitor-events -n my-iot-hub -d child-1
{
"event": {
"origin": "child-1",
"module": "simulatedTemperatureSensor",
"interface": "",
"component": "",
"payload": "{\"machine\":{\"temperature\":104.29281270901808,\"pressure\":10.48905461241978},\"ambient\":{\"temperature\":21.086561171611102,\"humidity\":24},\"timeCreated\":\"2023-04-17T21:50:30.1082487Z\"}"
}
}
Pemecahan Masalah
Jalankan perintah iotedge check
untuk memverifikasi konfigurasi dan memecahkan masalah kesalahan.
Anda dapat berjalan iotedge check
dalam hierarki berlapis, bahkan jika perangkat hilir tidak memiliki akses internet langsung.
Jika Anda menjalankan iotedge check
dari lapisan bawah, program akan mencoba menarik gambar dari induk melalui port 443.
sudo iotedge check --diagnostics-image-name $upstream:443/azureiotedge-diagnostics:1.2
Nilai azureiotedge-diagnostics
ditarik dari registri kontainer yang ditautkan dengan modul registri. Tutorial ini telah diatur secara default ke https://mcr.microsoft.com:
Nama | Nilai |
---|---|
REGISTRY_PROXY_REMOTEURL |
https://mcr.microsoft.com |
Jika Anda menggunakan registri kontainer privat, pastikan semua gambar (IoTEdgeAPIProxy, edgeAgent, edgeHub, Sensor Suhu Simulasi, dan diagnostik) ada dalam registri kontainer.
Jika perangkat hilir memiliki arsitektur prosesor yang berbeda dari perangkat induk, Anda memerlukan gambar arsitektur yang sesuai. Anda dapat menggunakan registri yang terhubung atau Anda dapat menentukan gambar yang benar untuk modul edgeAgent dan edgeHub di file config.toml perangkat hilir. Misalnya, jika perangkat induk berjalan pada arsitektur ARM32v7 dan perangkat hilir berjalan pada arsitektur AMD64, Anda perlu menentukan versi yang cocok dan tag gambar arsitektur dalam file config.toml perangkat hilir.
[agent.config]
image = "$upstream:443/azureiotedge-agent:1.5.15-linux-amd64"
"systemModules": {
"edgeAgent": {
"settings": {
"image": "$upstream:443/azureiotedge-agent:1.5.15-linux-amd64"
},
},
"edgeHub": {
"settings": {
"image": "$upstream:443/azureiotedge-hub:1.5.15-linux-amd64",
}
}
}
Membersihkan sumber daya
Anda dapat menghapus konfigurasi lokal dan sumber daya Azure yang Anda buat di artikel ini untuk menghindari biaya.
Untuk menghapus sumber daya:
Masuk ke portal Microsoft Azure, lalu pilih Grup sumber daya.
Pilih nama grup sumber daya yang berisi sumber daya pengujian IoT Edge Anda.
Tinjau daftar sumber daya yang terdapat dalam grup sumber daya Anda. Jika ingin menghapus semuanya, Anda dapat memilih Hapus grup sumber daya. Jika Anda hanya ingin menghapus beberapa dari mereka, Anda dapat memilih setiap sumber daya untuk menghapusnya satu per satu.
Langkah berikutnya
Dalam tutorial ini, Anda telah mengonfigurasi dua perangkat IoT Edge sebagai gateway dan mengatur salah satunya sebagai perangkat induk. Kemudian, Anda telah menunjukkan penarikan gambar kontainer ke perangkat turunan melalui gateway menggunakan modul Proksi IoT Edge API. Lihat panduan cara penggunaan modul proksi jika Anda ingin mempelajari lebih lanjut.
Untuk mempelajari selengkapnya tentang menggunakan gateway untuk membuat lapisan hierarki perangkat IoT Edge, lihat artikel berikut ini.