Cara menyambungkan perangkat melalui gateway transparan IoT Edge

Perangkat IoT Edge dapat bertindak sebagai gateway yang menyediakan koneksi antara perangkat lain di jaringan lokal dan aplikasi IoT Central Anda. Anda menggunakan gateway saat perangkat tidak dapat mengakses aplikasi IoT Central Anda secara langsung.

IoT Edge mendukung pola gateway transparan dan terjemahan. Artikel ini merangkum cara mengimplementasikan pola gateway transparan. Dalam pola ini, gateway meneruskan pesan dari perangkat downstream ke titik akhir IoT Hub di aplikasi IoT Central Anda. Gateway tidak memanipulasi pesan saat diteruskan. Di IoT Central, setiap perangkat hilir muncul sebagai turunan ke perangkat gateway:

Diagram that shows IoT Edge as a transparent gateway.

Untuk kesederhanaan, artikel ini menggunakan komputer virtual untuk menghosting perangkat hilir dan gateway. Dalam skenario nyata, perangkat downstream dan gateway akan berjalan pada perangkat fisik di jaringan lokal Anda.

Artikel ini memperlihatkan cara menerapkan skenario dengan menggunakan runtime IoT Edge 1.4.

Prasyarat

Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda perlu:

Untuk mengikuti langkah-langkah dalam artikel ini, unduh file berikut ke komputer Anda:

Impor manifes penyebaran

Setiap perangkat IoT Edge memerlukan manifes penyebaran untuk mengonfigurasi runtime IoT Edge. Untuk mengimpor manifes penyebaran untuk gateway transparan IoT Edge:

  1. Navigasikan ke manifes Edge.

  2. Pilih + Baru, masukkan nama untuk manifes penyebaran seperti Gateway transparan lalu unggah file EdgeTransparentGatewayManifest.json yang Anda unduh sebelumnya.

  3. Pilih Buat untuk menyimpan manifes penyebaran di aplikasi Anda.

Menambahkan templat perangkat

Baik perangkat hilir maupun perangkat gateway dapat menggunakan templat perangkat di IoT Central. IoT Central memungkinkan Anda memodelkan hubungan antara perangkat downstream dan gateway sehingga Anda dapat melihat dan mengelolanya setelah tersambung. Templat perangkat tidak diperlukan untuk melampirkan perangkat hilir ke gateway.

Untuk membuat templat perangkat untuk perangkat downstream, buat templat perangkat standar yang memodelkan kemampuan perangkat Anda. Contoh yang ditunjukkan dalam artikel ini menggunakan model perangkat termostat yang Anda unduh.

Guna membuat templat perangkat untuk perangkat downstream:

  1. Buat templat perangkat dan pilih perangkat IoT sebagai jenis templat.

  2. Pada halaman Kustomisasi wizard, masukkan nama seperti Termostat untuk templat perangkat.

  3. Setelah Anda membuat templat perangkat, pilih Impor model. Pilih model seperti daftar file thermostat-1.js yang Anda unduh sebelumnya.

  4. Untuk menghasilkan beberapa tampilan default untuk termostat, pilih tampilan lalu pilih Hasilkan tampilan default.

  5. Menerbitkan templat perangkat.

Untuk membuat templat perangkat untuk perangkat gateway transparan IoT Edge:

  1. Buat templat perangkat dan pilih Azure IoT Edge sebagai jenis templat.

  2. Pada halaman Kustomisasi wizard, masukkan nama seperti Gateway Azure Stack Edge untuk templat perangkat.

  3. Pada halaman Kustomisasi panduan, centang Ini adalah perangkat gateway.

  4. Pada halaman Tinjau, pilih Buat.

  5. Pada halaman Buat model , pilih Model kustom.

  6. Tambahkan entri dalam Hubungan ke templat perangkat downstream.

Cuplikan layar berikut menunjukkan halaman Hubungan untuk perangkat gateway IoT Edge dengan perangkat hilir yang menggunakan templat perangkat Termostat:

Screenshot showing IoT Edge gateway device template relationship with a thermostat downstream device template.

Cuplikan layar sebelumnya memperlihatkan templat perangkat gateway IoT Edge tanpa modul yang ditentukan. Gateway transparan tidak memerlukan modul apa pun karena runtime IoT Edge meneruskan pesan dari perangkat hilir langsung ke IoT Central. Jika gateway itu sendiri perlu mengirim telemetri, menyinkronkan properti, atau menangani perintah, Anda dapat menentukan kemampuan ini di komponen root atau di modul.

Tambahkan semua properti dan tampilan cloud yang diperlukan sebelum Anda menerbitkan gateway dan templat perangkat downstream.

Menambahkan perangkat

Saat Anda menambahkan perangkat ke aplikasi IoT Central, Anda dapat menentukan hubungan antara perangkat downstream dan gateway transparan.

Untuk menambahkan perangkat:

  1. Navigasi ke halaman perangkat di aplikasi IoT Central Anda.

  2. Tambahkan instans perangkat IoT Edge gateway transparan. Saat Anda menambahkan perangkat, pastikan Anda memilih manifes penyebaran gateway Transparan. Dalam artikel ini, ID perangkat gateway adalah edgegateway.

  3. Tambahkan satu atau beberapa instans perangkat downstream. Dalam artikel ini, perangkat downstream adalah termostat dengan thermostat1 dan thermostat2 ID.

  4. Di daftar perangkat, pilih setiap perangkat downstream dan pilih Lampirkan ke gateway.

Cuplikan layar berikut ini memperlihatkan bahwa Anda dapat menampilkan daftar perangkat yang dilampirkan ke gateway di halaman Perangkat Downstream:

Screenshot that shows the list of downstream devices connected to a transparent gateway.

Di gateway transparan, perangkat downstream tersambung ke gateway itu sendiri, bukan ke modul kustom yang dihosting oleh gateway.

Sebelum Anda menyebarkan perangkat, Anda memerlukan:

  • Lingkup ID aplikasi IoT Central Anda.
  • Nilai ID perangkat untuk perangkat gateway dan downstream.
  • Nilai Kunci primer untuk perangkat gateway dan downstream.

Untuk menemukan nilai ini, navigasi ke setiap perangkat di daftar perangkat dan pilih Sambungkan. Catat nilai-nilai ini sebelum Anda melanjutkan.

Tip

Anda dapat menghubungkan perangkat dan membangun hubungan tanpa terlebih dahulu membuat templat perangkat untuk perangkat. Anda dapat melampirkan perangkat hilir yang tidak ditetapkan ke perangkat gateway yang tidak ditetapkan.

Menyebarkan gateway dan perangkat

Untuk memungkinkan Anda mencoba skenario ini, langkah-langkah berikut menunjukkan kepada Anda cara menyebarkan gateway dan perangkat hilir ke komputer virtual Azure.

Tip

Untuk mempelajari cara menyebarkan runtime IoT Edge ke perangkat fisik, lihat Membuat perangkat IoT Edge di dokumentasi IoT Edge.

Untuk mencoba skenario gateway transparan, pilih tombol berikut untuk menyebarkan dua komputer virtual Linux. Satu komputer virtual memiliki runtime IoT Edge 1.4 yang terinstal dan merupakan gateway IoT Edge transparan. Komputer virtual lainnya adalah perangkat hilir tempat Anda menjalankan kode untuk mengirim telemetri termostat yang disimulasikan:

Deploy to Azure Button

Ketika dua komputer virtual disebarkan dan dijalankan, verifikasi bahwa perangkat gateway IoT Edge berjalan pada komputer virtual edgegateway:

  1. Buka halaman Perangkat di aplikasi IoT Central Anda. Jika perangkat gateway IoT Edge tersambung ke IoT Central, statusnya adalah Diprovisikan.

  2. Buka perangkat gateway IoT Edge dan verifikasi status modul pada halaman Modul. Jika runtime IoT Edge berhasil dimulai, status modul $edgeAgent dan $edgeHub adalah Berjalan:

    Screenshot showing the $edgeAgent and $edgeHub version 1.4 modules running on the IoT Edge gateway.

    Tip

    Anda mungkin harus menunggu beberapa menit saat komputer virtual dimulai dan perangkat diprovisikan di aplikasi IoT Central Anda.

Mengonfigurasi gateway

Agar perangkat IoT Edge Anda berfungsi sebagai gateway transparan, perangkat tersebut memerlukan beberapa sertifikat untuk membuktikan identitasnya ke perangkat downstream mana pun. Artikel ini menggunakan sertifikat demo. Di lingkungan produksi, gunakan sertifikat dari otoritas sertifikat Anda.

Untuk menghasilkan sertifikat demo dan memasangnya di perangkat gateway Anda:

  1. Gunakan SSH untuk menyambungkan dan masuk di komputer virtual perangkat gateway Anda.

  2. Jalankan perintah berikut untuk mengklon repositori IoT Edge dan membuat sertifikat demo Anda:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    Setelah Anda menjalankan perintah sebelumnya, file berikut ini siap digunakan di langkah berikutnya:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - Sertifikat CA akar yang digunakan untuk membuat semua sertifikat demo lainnya untuk menguji skenario IoT Edge.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem - Sertifikat CA perangkat yang direferensikan dari file konfigurasi IoT Edge. Dalam skenario gateway, sertifikat CA ini adalah cara perangkat IoT Edge memverifikasi identitasnya ke perangkat downstream.
    • ~/certs/private/iot-edge-device-mycacert.key.pem - Kunci privat yang terkait dengan sertifikat CA perangkat.

    Untuk mempelajari selengkapnya tentang sertifikat demo ini, lihat Membuat sertifikat demo untuk menguji fitur perangkat IoT Edge.

  3. Buka file config.toml di editor teks. Contohnya:

    sudo nano /etc/aziot/config.toml
    
  4. Temukan pengaturan berikut dalam file konfigurasi. Tambahkan pengaturan sertifikat sebagai berikut:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    Contoh sebelumnya mengasumsikan Anda masuk sebagai AzureUser dan membuat sertifikat OS perangkat yang disebut "mycacert".

  5. Simpan perubahan dan mulai ulang runtime bahasa umum IoT Edge:

    sudo iotedge config apply
    

Jika runtime IoT Edge berhasil dimulai setelah perubahan Anda, status modul $edgeAgent dan $edgeHub berubah menjadi Berjalan pada halaman Modul untuk perangkat gateway di IoT Central.

Jika runtime tidak dimulai, periksa perubahan yang Anda buat di file konfigurasi IoT Edge dan lihat Memecahkan masalah perangkat IoT Edge Anda.

Gateway transparan Anda sekarang dikonfigurasi dan siap untuk mulai meneruskan telemetri dari perangkat downstream.

Memprovisikan perangkat downstream

IoT Central bergantung pada Device Provisioning Service (DPS) untuk menyediakan perangkat di IoT Central. Saat ini, IoT Edge tidak dapat menggunakan DPS yang menyediakan perangkat hilir ke aplikasi IoT Central Anda. Langkah-langkah berikut menunjukkan kepada Anda cara memprovisikan thermostat1 perangkat secara manual. Untuk menyelesaikan langkah-langkah ini, Anda memerlukan lingkungan dengan Python terinstal dan konektivitas internet. Periksa Azure IoT Python SDK untuk persyaratan versi Python saat ini. Azure Cloud Shell memiliki Python yang telah diinstal sebelumnya:

  1. Jalankan perintah berikut untuk menginstal modul azure.iot.device:

    pip install azure.iot.device
    
  2. Jalankan perintah berikut untuk mengunduh skrip Python yang melakukan provisi perangkat:

    wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/provision_device.py
    
  3. Untuk menyediakan thermostat1 perangkat hilir di aplikasi IoT Central Anda, jalankan perintah berikut, ganti {your application id scope} dan {your device primary key}. Anda mencatat nilai-nilai ini saat menambahkan perangkat ke aplikasi IoT Central Anda:

    export IOTHUB_DEVICE_DPS_DEVICE_ID=thermostat1
    export IOTHUB_DEVICE_DPS_ID_SCOPE={your application id scope}
    export IOTHUB_DEVICE_DPS_DEVICE_KEY={your device primary key}
    python provision_device.py
    

Di aplikasi IoT Central Anda, verifikasi bahwa status Perangkat untuk thermostat1 perangkat sekarang Disediakan.

Mengonfigurasi perangkat downstream

Di bagian sebelumnya, Anda mengonfigurasi komputer virtual edgegateway dengan sertifikat demo untuk memungkinkannya berjalan sebagai gateway. Komputer virtual leafdevice siap untuk dipasangi simulator termostat yang menggunakan gateway untuk tersambung ke IoT Central.

Komputer virtual leafdevice membutuhkan salinan sertifikat CA akar yang Anda buat di komputer virtual edgegateway. Salin file /home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem dari komputer virtual edgegateway ke direktori rumah Anda di komputer virtual leafdevice. Anda dapat menggunakan perintah scp untuk menyalin file antara komputer virtual Linux. Misalnya, dari komputer leafdevice :

scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem .

Untuk mempelajari cara memeriksa koneksi dari perangkat downstream ke gateway, lihat Menguji koneksi gateway.

Untuk menjalankan simulator termostat pada komputer virtual leafdevice:

  1. Gunakan SSH untuk menyambungkan dan masuk di komputer virtual Anda leafdevice .

  2. Unduh sampel Python ke direktori rumah Anda:

    cd ~
    wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/simple_thermostat.py
    
  3. Pasang modul Python perangkat Azure IoT:

    sudo apt update
    sudo apt install python3-pip
    pip3 install azure.iot.device
    
  4. Atur variabel lingkungan untuk mengonfigurasi sampel. Ganti {your device shared key} dengan kunci primer thermostat1 yang Anda catat sebelumnya. Variabel-variabel ini mengasumsikan nama komputer virtual gateway adalah edgegateway dan ID perangkat termostat adalah thermostat1:

    export IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    export IOTHUB_DEVICE_CONNECTION_STRING="HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}"
    export IOTEDGE_ROOT_CA_CERT_PATH=~/azure-iot-test-only.root.ca.cert.pem
    

    Perhatikan bagaimana string koneksi menggunakan nama perangkat gateway dan bukan nama IoT hub.

  5. Untuk menjalankan kode, gunakan perintah berikut:

    python3 simple_thermostat.py
    

    Output dari perintah ini terlihat seperti:

    Connecting using Connection String HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}
    Listening for command requests and property updates
    Press Q to quit
    Sending telemetry for temperature
    Sent message
    Sent message
    Sent message
    ...
    

    Tip

    Jika Anda melihat kesalahan saat perangkat hilir mencoba menyambungkan. Coba jalankan kembali langkah-langkah provisi perangkat.

  6. Untuk melihat telemetri di IoT Central, navigasikan ke halaman Ringkasan untuk perangkat termostat1:

    Screenshot showing telemetry from the downstream device.

    Pada halaman Tentang Anda bisa menampilkan nilai properti yang dikirim dari perangkat downstream, dan pada halaman Perintah Anda bisa memanggil perintah di perangkat downstream.