Integrasi dan penerapan berkelanjutan ke perangkat Azure IoT Edge (editor klasik)
Berlaku untuk: IoT Edge 1.4
Penting
IoT Edge 1.5 LTS dan IoT Edge 1.4 adalah rilis yang didukung. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.
Azure Pipelines menyertakan tugas Azure IoT Edge bawaan yang membantu Anda menerapkan DevOps dengan aplikasi Azure IoT Edge Anda. Artikel ini akan menunjukkan cara menggunakan fitur integrasi berkelanjutan dan fitur penerapan berkelanjutan dari Azure Pipelines untuk membangun, menguji, dan menerapkan aplikasi dengan cepat dan efisien ke Azure IoT Edge Anda menggunakan editor klasik. Selain itu, Anda dapat menggunakan YAML.
Di dalam artikel ini, Anda akan mempelajari cara menggunakan tugas Azure IoT Edge untuk Azure Pipelines dengan tujuan membuat build dan merilis alur untuk solusi IoT Edge Anda. Setiap tugas Azure IoT Edge yang ditambahkan ke alur Anda akan mengimplementasikan salah satu dari empat tindakan berikut:
Tindakan | Deskripsi |
---|---|
Gambar modul build | Mengambil kode solusi IoT Edge Anda serta membangun gambar kontainer. |
Gambar modul dorong | Mendorong gambar modul ke arah registri kontainer yang ditentukan. |
Membuat manifes penyebaran | Mengambil file deployment.template.json serta variabelnya, kemudian membuat file akhir manifes penyebaran IoT Edge. |
Menyebarkan ke perangkat IoT Edge | Menyebarkan IoT Edge ke satu atau beberapa perangkat IoT Edge. |
Kecuali ditentukan lain, prosedur di dalam artikel ini tidak mencakup semua fungsionalitas yang tersedia melalui parameter tugas. Untuk informasi selengkapnya, lihat sumber daya berikut:
- Versi tugas
- Lanjutan - Jika berlaku, tentukan modul yang tidak ingin dibangun.
- Opsi Kontrol
- Variabel Lingkungan
- Variabel Output
Prasyarat
Repositori Azure Repos. Jika Anda tidak memilikinya, Anda bisa Membuat Repo Git baru di proyek Anda. Untuk artikel ini, kami telah membuat repositori yang disebut sebagai IoTEdgeRepo.
Solusi IoT Edge yang dikhususkan dan didorong ke repositori Anda. Jika Anda ingin membuat solusi sampel baru untuk menguji artikel ini, ikuti langkah-langkah dalam Mengembangkan modul Azure IoT Edge menggunakan Visual Studio Code. Untuk artikel ini, kami telah membuat solusi di repositori kami yang disebut sebagai IoTEdgeSolution, yang memiliki kode untuk modul bernama filtermodule.
Untuk artikel ini, yang Anda butuhkan hanyalah folder solusi yang dibuat oleh templat IoT Edge, baik di Visual Studio Code atau Visual Studio. Anda tidak harus membuat, mendorong, menyebarkan, atau men-debug kode ini sebelum melanjutkan. Anda akan menyiapkan proses tersebut pada Azure Pipelines.
Ketahui jalur menuju ke file deployment.template.json di dalam solusi Anda, yang mana digunakan dalam beberapa langkah. Jika Anda tidak terbiasa dengan peran templat penyebaran, lihat Pelajari cara menyebarkan modul dan membuat rute.
Tip
Jika Anda ingin membuat solusi baru, silakan kloning repositori Anda secara lokal terlebih dahulu. Kemudian ketika Anda membuat solusi, Anda dapat memilih untuk membuatnya secara langsung di folder repositori. Anda dapat dengan mudah mengkhususkan dan mendorong file baru dari sana.
Registri kontainer agar Anda dapat mendorong gambar modul. Anda dapat menggunakan Azure Container Registry atau registri pihak ketiga.
Azure IoT hub aktif dengan setidaknya dua perangkat IoT Edge dengan tujuan menguji tahap pengujian dan penyebaran produksi secara terpisah. Anda dapat mengikuti artikel mulai cepat untuk membuat perangkat IoT Edge pada Linux atau Windows
Membuat alur build untuk integrasi berkelanjutan
Di bagian ini, Anda akan membuat alur build baru. Anda konfigurasikan alur untuk berjalan secara otomatis dan terbitkan log build kapan pun Anda memeriksa perubahan pada contoh solusi IoT Edge.
Silakan masuk ke organisasi Azure DevOps Anda (
https://dev.azure.com/{your organization}
) dan buka proyek yang berisi repositori solusi IoT Edge Anda.Dari menu panel kiri di proyek Anda, pilih Alur. Pilih Buat Alur di tengah halaman. Atau, jika Anda sudah memiliki alur build, pilih tombol Alur baru di bagian kanan atas.
Di bagian bawah halaman Di mana kode Anda?, pilih Gunakan editor klasik. Jika Anda ingin menggunakan YAML untuk membuat alur build proyek Anda, silakan lihat panduan YAML.
Silakan ikuti perintah untuk membuat alur Anda.
Berikan informasi sumber untuk alur build baru Anda. Pilih Azure Repos Git sebagai sumber, lalu pilih proyek, repositori, serta cabang tempat kode solusi IoT Edge Anda berada. Kemudian pilih Lanjutkan.
Pilih Tugas kosong dan bukan template.
Setelah alur Anda dibuat, Anda dibawa ke editor alur. Di sini, Anda dapat mengubah nama alur, kumpulan agen, dan spesifikasi agen.
Anda dapat memilih kumpulan yang dihosting oleh Microsoft, atau kumpulan yang dihosting sendiri dan Anda kelola.
Dalam deskripsi alur Anda, pilih spesifikasi agen yang tepat berdasarkan platform target Anda:
Jika Anda ingin membangun modul Anda pada platform amd64 untuk kontainer Linux, pilih ubuntu-18.04
Jika Anda ingin membangun modul Anda pada platform amd64 untuk kontainer Windows 1809, Anda harus mengatur agen yang dihosting sendiri di Windows.
Jika Anda ingin membangun modul pada platform arm32v7 atau arm64 untuk kontainer Linux, Anda harus menyiapkan agen yang dihosting sendiri di Linux.
Alur Anda sudah dikonfigurasikan dengan pekerjaan yang disebut Pekerjaan agen 1. Pilih tanda tambah (+) untuk menambahkan empat tugas ke pekerjaan: Azure IoT Edge dua kali, Salin File sekali, dan Terbitkan Artefak Build sekali. Cari setiap tugas dan arahkan mouse ke atas nama tugas untuk melihat tombol Tambahkan.
Saat keempat tugas ditambahkan, tugas Agen Anda akan terlihat seperti contoh berikut:
Pilih tugas Azure IoT Edge yang pertama untuk mengeditnya. Tugas ini akan membangun semua modul di dalam solusi dengan platform target yang Anda tentukan. Edit tugas menggunakan nilai berikut ini:
Parameter Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Perbuatan Pilih Buat gambar modul. File .template.json Pilih bundaran (...) dan navigasikan ke deployment.template.jsfile di repositori yang berisi solusi IoT Edge Anda. Platform asal Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Variabel output Berikan nama referensi untuk dihubungkan dengan jalur file yang dihasilkan file deployment.json, seperti edge. Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat tugas Azure IoT Edge.
Konfigurasi ini akan menggunakan repositori gambar dan tag yang didefinisikan dalam file
module.json
untuk memberi nama dan menandai gambar modul. Gambar modul build juga akan membantu mengganti variabel dengan nilai persis yang Anda tentukan dalam filemodule.json
. Pada Visual Studio atau Visual Studio Code, Anda menentukan nilai aktual dalam file.env
. Di Azure Pipelines, Anda mengatur nilai pada tab Variabel Alur. Pilih tab Variabel pada menu editor saluran dan konfigurasikan nama dan nilai berikut:- ACR_ADDRESS: Nilai Server login Azure Container Registry Anda. Anda dapat menemukan nilai server masuk pada halaman gambaran umum di registri kontainer di portal Microsoft Azure.
Jika Anda memiliki variabel lain di dalam proyek Anda, Anda dapat menentukan nama dan nilai pada tab ini. Gambar modul build hanya mengenali variabel dengan format
${VARIABLE}
. Pastikan Anda menggunakan format ini di dalam berkas**/module.json
Anda.Pilih tugas Azure IoT Edge yang kedua untuk mengeditnya. Tugas ini akan mendorong semua gambar modul ke registri kontainer yang Anda pilih.
Parameter Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Perbuatan Pilih Gambar modul push. Jenis registri kontainer Gunakan jenis default: Azure Container Registry
.Langganan Azure Pilih langganan Anda. Azure Container Registry Pilih jenis registri kontainer yang Anda gunakan dengan tujuan menyimpan gambar modul Anda. Bergantung pada jenis registri yang Anda pilih, formulir akan berubah. Jika Anda memilih Azure Container Registry, gunakan daftar drop-down untuk memilih langganan Azure serta nama registri kontainer Anda. Jika Anda memilih Generic Container Registry, pilih Baru dengan tujuan membuat koneksi layanan registri. File .template.json Pilih bundaran (...) dan navigasikan ke deployment.template.jsfile di repositori yang berisi solusi IoT Edge Anda. Platform asal Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Menambahkan kredensial registri pada manifes penyebaran Tentukan true untuk menambahkan kredensial registri dengan tujuan mendorong gambar docker ke manifes penyebaran. Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat tugas Azure IoT Edge.
Jika Anda memiliki beberapa registri kontainer untuk menghosting gambar modul Anda, Anda perlu menduplikasi tugas ini, memilih registri kontainer yang berbeda, dan menggunakan modul Bypass di pengaturan Lanjutan untuk melewati gambar yang tidak ditujukan untuk registri khusus ini.
Pilih tugas Salin File untuk mengeditnya. Gunakan tugas ini untuk menyalin berkas pada direktori pementasan artefak.
Parameter Deskripsi Nama tampilan Gunakan atau kustomisasi nama default Folder sumber Folder dengan file yang akan disalin. Konten Tambahkan dua baris: deployment.template.json
serta**/module.json
. Kedua file ini berfungsi sebagai input untuk menghasilkan manifes penyebaran bagi IoT Edge.Folder Target Silakan tentukan variabel $(Build.ArtifactStagingDirectory)
. Lihat Variabel Build untuk mempelajari deskripsinya.Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat Salin tugas file.
Pilih tugas Terbitkan Artefak Build untuk mengeditnya. Menyediakan jalur direktori pementasan artefak pada tugas, sehingga jalur dapat diterbitkan untuk melepaskan alur.
Parameter Deskripsi Nama tampilan Gunakan atau kustomisasi nama default. Jalur untuk penerbitan Silakan tentukan variabel $(Build.ArtifactStagingDirectory)
. Lihat Variabel build untuk mempelajari selengkapnya.Nama artefak Gunakan nama default: hilangkan Lokasi penerbitan artefak Gunakan lokasi default: Azure Pipelines Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat Terbitkan tugas artefak build.
Buka tab Pemicu dan centang kotak untuk Mengaktifkan integrasi berkelanjutan. Pastikan cabang yang berisi kode Anda telah disertakan.
- Pilih Simpan dari menu drop-down Simpan & antrean.
Alur ini sekarang dikonfigurasi untuk berjalan secara otomatis ketika Anda mendorong kode baru ke arah repo Anda. Tugas terakhir, menerbitkan artefak alur, yang akan memicu alur perilisan. Lanjutkan ke bagian berikutnya untuk membangun alur perilisan.
Membuat alur rilis untuk penyebaran berkelanjutan
Di bagian ini, Anda membuat alur rilis yang dikonfigurasi untuk berjalan secara otomatis saat alur build Anda menjatuhkan artefak, dan itu akan menampilkan log penyebaran di Azure Pipelines.
Buat alur baru, dan tambahkan tahap baru:
Di tab Rilis di bawah Pipeline, pilih + Alur baru. Atau, jika Anda sudah memiliki alur rilis, pilih tombol + Baru dan pilih + Alur rilis baru.
Ketika diminta untuk memilih templat, pilih untuk memulai dengan pekerjaan Kosong.
Alur rilis baru Anda menginisialisasi dengan satu tahap, yang disebut Tahap 1. Ganti nama Tahap 1 untuk dev dan perlakukan sebagai alur penyebaran berkelanjutan untuk lingkungan pengembangan Anda. Biasanya, alur penyebaran berkelanjutan memiliki beberapa tahap termasuk dev, penahapan, dan prod. Anda dapat menggunakan nama yang berbeda dan membuat lebih banyak berdasarkan latihan DevOps Anda. Tutup jendela detail tahapan setelah berganti nama.
Anda juga dapat mengganti nama alur rilis dengan memilih teks "Alur rilis baru" di bagian atas.
Tautkan rilis ke artefak build yang diterbitkan oleh alur build. Klik Tambahkan di area artefak.
Pada halaman Tambahkan artefak, pilih Build sebagai tipe Sumber. Pilih proyek dan alur build yang Anda buat. Jika mau, Anda dapat mengubah alias Sumber menjadi sesuatu yang lebih deskriptif. Kemudian, pilih Tambahkan.
Buka pemicu artefak dan pilih alihkan untuk mengaktifkan pemicu penyebaran berkelanjutan. Sekarang, rilis baru akan dibuat setiap kali build baru tersedia.
Tahap dev telah dikonfigurasi sebelumnya dengan satu tugas dan nol tugas. Dari menu alur, pilih Tugas lalu pilih tahap dev. Pilih pekerjaan Agen dan ubah nama Tampilannya menjadi QA. Anda dapat mengonfigurasi detail tentang pekerjaan agen, tetapi tugas penyebaran tidak sensitif platform sehingga Anda dapat menggunakan spesifikasi Agen apa pun di kumpulan Agen yang dipilih.
Pada tugas QA, pilih tanda plus (+) untuk menambahkan dua tugas. Cari dan tambahkan Azure IoT Edge dua kali.
Pilih tugas Azure IoT Edge pertama dan konfigurasikan dengan nilai berikut:
Parameter Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Perbuatan Pilih Generate deployment manifest
.File .template.json Tentukan jalur: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json
. Jalur ini diterbitkan dari alur build.Platform asal Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Jalur output Letakkan jalannya $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Jalur ini adalah file manifes penyebaran IoT Edge akhir.Konfigurasi ini membantu mengganti URL gambar modul dalam
deployment.template.json
file. Pembuatan Manifes penyebaran juga membantu mengganti variabel dengan nilai persis yang Anda tentukan dalamdeployment.template.json
file. Di Visual Studio/Visual Studio Code, Anda menentukan nilai aktual dalam.env
file. Di Azure Pipelines, Anda mengatur nilai di tab Release Pipeline Variables. Pindah ke tab Variabel dan konfigurasikan nama dan nilai sebagai berikut:- ACR_ADDRESS: Nilai Server login Azure Container Registry Anda. Anda dapat mengambil server Masuk dari halaman Gambaran Umum registri kontainer di portal Microsoft Azure.
- ACR_PASSWORD: Kata sandi Azure Container Registry Anda.
- ACR_USER:Nama pengguna Azure Container Registry Anda.
Jika Anda memiliki variabel lain dalam proyek, Anda dapat menentukan nama dan nilai di tab ini. Pembuatan manifes penyebaran hanya dapat mengenali variabel yang
${VARIABLE}
beraroma. Pastikan Anda menggunakan rasa ini dalam file*.template.json
Anda."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Pilih tugas Azure IoT Edge kedua dan konfigurasikan dengan nilai berikut:
Parameter Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Perbuatan Pilih Deploy to IoT Edge devices
.File penyebaran Letakkan jalannya $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Jalur ini adalah file manifes penyebaran file IoT Edge.Langganan Azure Pilih langganan yang berisi IoT Hub Anda. Nama IoT Hub Pilih IoT hub Anda. Pilih satu/beberapa perangkat Pilih apakah Anda ingin alur rilis disebarkan ke satu atau beberapa perangkat. Jika Anda menyebarkan ke satu perangkat, masukkan ID perangkat IoT Edge. Jika Anda menyebarkan ke beberapa perangkat, tentukan kondisi target perangkat. Kondisi target adalah filter yang cocok dengan satu set perangkat IoT Edge di IoT Hub. Jika Anda ingin menggunakan tag perangkat sebagai kondisi, Anda perlu memperbarui tag perangkat yang sesuai dengan kembaran perangkat IoT Hub. Perbarui ID penyebaran IoT Edge dan prioritas penyebaran IoT Edge di pengaturan lanjutan. Untuk informasi selengkapnya tentang membuat penyebaran untuk beberapa perangkat, lihat Memahami penyebaran otomatis IoT Edge. ID perangkat atau kondisi target Bergantung pada pilihan sebelumnya, tentukan ID perangkat atau kondisi target untuk diterapkan ke beberapa perangkat. Lanjutan Untuk ID penyebaran IoT Edge, tentukan $(System.TeamProject)-$(Release.EnvironmentName)
. Variabel ini memetakan nama proyek dan rilis dengan ID penyebaran IoT Edge Anda.Jika tugas Anda melibatkan penggunaan gambar yang berada di Docker Trusted Registry pribadi yang tidak terlihat oleh cloud publik, Anda dapat mengatur variabel lingkungan SKIP_MODULE_IMAGE_VALIDATION untuk
true
melewati validasi gambar.Pilih Simpan untuk menyimpan perubahan Anda ke alur rilis baru. Kembali ke tampilan alur dengan memilih tab Alur dari menu.
Catatan
Penyebaran berlapis belum didukung dalam tugas Azure IoT Edge di Azure DevOps.
Namun, Anda dapat menggunakan tugas Azure CLI pada Azure DevOps untuk membuat penyebaran Anda sebagai penyebaran berlapis. Untuk nilai Inline Script, Anda dapat menggunakan perintah buat penyebaran az iot edge:
az iot edge deployment create -d {deployment_name} -n {hub_name} --content modules_content.json --layered true
Memverifikasi IoT Edge CI/CD dengan alur build dan rilis
Untuk memicu pekerjaan build, Anda dapat mendorong commit ke repositori kode sumber atau memicunya secara manual. Di bagian ini, Anda akan memicu alur CI/CD secara manual untuk memastikan alur CI/CD berfungsi. Kemudian verifikasi bahwa penyebaran berhasil.
Dari menu panel kiri, pilih Alur dan buka alur build yang Anda buat di awal artikel ini.
Anda dapat memicu tugas build di alur build dengan memilih tombol Eksekusi alur di kanan atas.
Tinjau pengaturan Eksekusi alur. Lalu pilih Eksekusi.
Pilih Pekerjaan agen 1 untuk melihat perkembangan eksekusi alur. Anda dapat meninjau log output pekerjaan dengan memilih pekerjaan.
Jika alur build berhasil diselesaikan, tindakan ini akan memicu rilis ke tahap dev. Rilis dev yang berhasil akan membuat penyebaran IoT Edge untuk menargetkan perangkat IoT Edge.
Klik tahap dev untuk melihat log rilis.
Jika alur Anda gagal, mulailah dengan melihat log. Anda dapat melihat log dengan membuka ringkasan aksekusi alur dan memilih pekerjaan dan tugas. Periksa log tugas jika ada tugas tertentu yang gagal. Untuk instruksi detail cara mengonfigurasi dan menggunakan log, lihat Meninjau log untuk mendiagnosis masalah alur.
Langkah berikutnya
- Memahami penyebaran IoT Edge di dalam Memahami penyebaran IoT Edge bagi satu perangkat atau dalam skala besar
- Telusuri langkah-langkah untuk membuat, memperbarui, atau menghapus penyebaran pada Sebarkan dan pantau modul IoT Edge dalam skala besar.