Integrasi berkelanjutan dan penyebaran berkelanjutan ke perangkat Azure IoT Edge
Berlaku untuk: IoT Edge 1.5 IoT Edge 1.4
Penting
IoT Edge 1.5 LTS dan IoT Edge 1.4 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai pada 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.
Anda dapat dengan mudah mengadopsi Azure DevOps menggunakan aplikasi Azure IoT Edge Anda dengan tugas Azure IoT Edge bawaan pada Azure Pipelines. Artikel ini menunjukkan cara Anda menggunakan Azure Pipelines untuk membangun, menguji, dan menyebarkan modul Azure IoT Edge menggunakan YAML. Atau, Anda dapat menggunakan editor klasik.
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:
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
Untuk informasi selengkapnya tentang menggunakan Azure Repos, lihat Berbagi kode Anda dengan Visual Studio dan Azure Repos.
Membuat alur build untuk integrasi berkelanjutan
Di bagian ini, Anda akan membuat alur build baru. Anda mengonfigurasi alur untuk berjalan secara otomatis saat Anda cek masuk perubahan apa pun pada contoh solusi IoT Edge serta menerbitkan log build.
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.
Pada halaman Di mana kode Anda?, pilih Azure Repos Git
YAML
. Jika Anda ingin menggunakan editor klasik untuk membuat alur build proyek Anda, lihat panduan editor klasik.Pilih repositori tempat Anda membuat alur.
Pada halaman Konfigurasikan alur Anda, pilih Alur Starter. Jika Anda memiliki file Azure Pipelines YAML yang sudah ada sebelumnya yang ingin Anda gunakan untuk membuat alur ini, Anda dapat memilih file Existing Azure Pipelines YAML dan menyediakan cabang serta jalur dalam repositori ke file.
Pada halaman Tinjau YAML alur Anda, Anda dapat mengeklik nama default
azure-pipelines.yml
untuk mengganti nama file konfigurasi alur Anda.Pilih Perlihatkan asisten untuk membuka palet Tugas.
Untuk menambahkan tugas, letakkan kursor Anda di akhir YAML atau di mana pun Anda ingin instruksi tugas Anda ditambahkan. Cari dan pilih Azure IoT Edge. Isi parameter tugas sebagai berikut. Kemudian, pilih Tambahkan.
Parameter Deskripsi Tindakan Pilih Buat gambar modul. File .template.json Berikan jalur ke file deployment.template.json 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. Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat tugas Azure IoT Edge.
Tip
Setelah setiap tugas ditambahkan, editor akan secara otomatis menyoroti baris yang ditambahkan. Untuk mencegah timpa yang tidak disengaja, batal pilih garis dan sediakan ruang baru untuk tugas Anda berikutnya sebelum menambahkan tugas tambahan.
Ulangi proses ini untuk menambahkan tiga tugas lagi dengan parameter berikut:
Tugas: Azure IoT Edge
Parameter Deskripsi Tindakan Pilih Gambar modul push. Jenis registri kontainer Gunakan tipe default: Azure Container Registry. Langganan Azure Pilih langganan Anda. Azure Container Registry Pilih registri yang ingin Anda gunakan untuk alur. File .template.json Berikan jalur ke file deployment.template.json 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. Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat tugas Azure IoT Edge.
Tugas: Menyalin File
Parameter Deskripsi Folder sumber Dari folder sumber yang akan disalin. Kosong adalah akar repositori. Gunakan variabel jika file tidak ada dalam repositori. Contoh: $(agent.builddirectory)
.Konten Tambahkan dua baris: deployment.template.json
serta**/module.json
.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.
Tugas: Menerbitkan Artefak Build
Parameter Deskripsi Jalur untuk penerbitan Silakan tentukan variabel $(Build.ArtifactStagingDirectory)
. Lihat Variabel Build untuk mempelajari deskripsinya.Nama artefak Tentukan nama default: drop
Lokasi penerbitan artefak Gunakan lokasi asali: Azure Pipelines
Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat Terbitkan tugas artefak build.
Pilih Simpan dari drop down Simpan dan jalankan di kanan atas.
Pemicu integrasi berkelanjutan diaktifkan secara default untuk alur YAML Anda. Jika Anda ingin mengedit pengaturan ini, pilih alur Anda dan pilih Edit di kanan atas. Pilih Tindakan lainnya di samping tombol Jalankan di kanan atas dan masuk ke Pemicu. Integrasi berkelanjutan menunjukkan seperti yang diaktifkan di bawah nama alur Anda. Jika Anda ingin melihat detail pemicunya, centang kotak Ganti pemicu integrasi berkelanjutan YAML dari sini.
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 menghilangkan artefak, dan 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. Pilih 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 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.
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.
Pilih 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.