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.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 mengadopsi DevOps dengan aplikasi Azure IoT Edge Anda. Artikel ini menunjukkan cara menggunakan integrasi berkelanjutan dan fitur penyebaran berkelanjutan Azure Pipelines untuk membangun, menguji, dan menyebarkan aplikasi dengan cepat dan efisien ke Azure IoT Edge Anda menggunakan editor klasik. Atau, Anda dapat menggunakan YAML.
Dalam artikel ini, Anda akan mempelajari cara menggunakan tugas Azure IoT Edge untuk Azure Pipelines guna membuat pipeline build dan rilis 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 |
|---|---|
| Bangun gambar modul | Mengambil kode solusi IoT Edge Anda serta membangun gambar kontainer. |
| Gambar modul pemroses | Mendorong gambar modul ke arah registri kontainer yang ditentukan. |
| Membuat manifes penerapan | Mengambil file deployment.template.json serta variabelnya, kemudian membuat file akhir manifes penyebaran IoT Edge. |
| Menyebarkan ke perangkat IoT Edge | Membuat penyebaran 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 ini:
- Versi tugas
- Tingkat Lanjut - Jika berlaku, tentukan modul yang tidak ingin Anda buat.
- Opsi Kontrol
- Variabel Lingkungan
- Variabel Keluaran
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 di-commit dan di-push 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 perlu membuat, mengunggah, menyebarkan, atau menangani 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.
Petunjuk / Saran
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 melakukan commit dan push file baru dari sana.
Registri kontainer tempat Anda dapat mengunggah citra 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 panduan 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 mengonfigurasi alur untuk berjalan secara otomatis dan menerbitkan log build setiap kali Anda memeriksa perubahan pada 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, lihat panduan YAML .
Ikuti perintah untuk membuat alur Anda.
Berikan informasi sumber untuk alur build baru Anda. Pilih Azure Repos Git sebagai sumbernya, lalu pilih proyek, repositori, dan cabang tempat kode solusi IoT Edge Anda berada. Kemudian pilih Lanjutkan.
Pilih Pekerjaan kosong alih-alih templat.
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 Microsoft, atau kumpulan yang dihost sendiri yang Anda kelola.
Dalam deskripsi alur Anda, pilih spesifikasi agen yang benar berdasarkan platform target Anda:
Jika Anda ingin membangun modul Anda di platform amd64 untuk kontainer Linux, pilih ubuntu-18.04
Jika Anda ingin membangun modul Anda di platform amd64 untuk kontainer Windows 1809, Anda perlu menyiapkan agen yang dihost sendiri di Windows.
Jika Anda ingin membangun modul Anda di platform arm32v7 atau arm64 untuk kontainer Linux, Anda perlu menyiapkan agen yang dihost sendiri di Linux.
Alur Anda telah dikonfigurasi sebelumnya dengan pekerjaan yang disebut Agent job 1. Pilih tanda plus (+) untuk menambahkan empat tugas ke pekerjaan: Azure IoT Edge dua kali, Salin File satu kali, dan Publikasikan Artefak Build satu kali. Cari setiap tugas dan arahkan mouse ke atas nama tugas untuk melihat tombol Tambahkan.
Saat keempat tugas ditambahkan, pekerjaan Agen Anda terlihat seperti contoh berikut:
Pilih tugas Azure IoT Edge pertama untuk mengeditnya. Tugas ini membangun semua modul dalam solusi dengan platform target yang Anda tentukan. Edit tugas dengan nilai berikut:
Pengaturan Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Tindakan Pilih Buat gambar modul. .template.json File Pilih elipsis (...) dan navigasikan ke file deployment.template.json di repositori yang berisi solusi IoT Edge Anda. Platform bawaan Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Variabel-variabel keluaran Berikan nama referensi untuk dikaitkan dengan jalur file tempat file deployment.json Anda dihasilkan, seperti edge. Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat tugas Azure IoT Edge.
Konfigurasi ini menggunakan repositori gambar dan tag yang ditentukan dalam file
module.jsonuntuk memberi nama dan menandai gambar modul. Membuat gambar modul juga membantu mengganti variabel dengan nilai yang tepat yang Anda tentukan dalam filemodule.json. Di 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 alur dan konfigurasikan nama dan nilai sebagai berikut:- ACR_ADDRESS: Nilai Server login Azure Container Registry Anda. Anda dapat menemukan nilai server masuk di halaman gambaran umum registri kontainer di portal Microsoft Azure.
Jika Anda memiliki variabel lain dalam proyek, Anda dapat menentukan nama dan nilai pada tab ini. Gambar modul Build hanya mengenali variabel yang dalam format
${VARIABLE}. Pastikan Anda menggunakan format ini dalam file**/module.jsonAnda.Pilih tugas Azure IoT Edge kedua untuk mengeditnya. Tugas ini mendorong semua gambar modul ke registri kontainer yang Anda pilih.
Pengaturan Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Tindakan Pilih Gambar modul push. Jenis registri kontainer Gunakan jenis default: Azure Container Registry.Langganan Azure Pilih langganan Anda. Azure Container Registry (Pendaftaran Kontainer Azure) Pilih jenis registri kontainer yang Anda gunakan untuk menyimpan gambar modul Anda. Bergantung pada jenis registri mana yang Anda pilih, formulir berubah. Jika Anda memilih Azure Container Registry, gunakan daftar dropdown untuk memilih langganan Azure dan nama registri kontainer Anda. Jika Anda memilih Generic Container Registry, pilih New untuk membuat koneksi layanan registri. File .template.json Pilih elipsis (...) dan navigasikan ke file deployment.template.json di repositori yang berisi solusi IoT Edge Anda. Platform bawaan Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Menambah kredensial registri ke dalam manifes penyebaran Atur true untuk menambahkan kredensial registri guna mengunggah image Docker ke dalam 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 perlu menduplikasi tugas ini, memilih registri kontainer yang berbeda, dan menggunakan modul Bypass di pengaturan Tingkat Lanjut untuk melewati gambar yang bukan untuk registri khusus ini.
Pilih tugas Salin File untuk mengeditnya. Gunakan tugas ini untuk menyalin file ke direktori penahapan artefak.
Pengaturan Deskripsi Nama tampilan Gunakan nama default atau kustomisasi Folder sumber Folder dengan file yang akan disalin. Isi Tambahkan dua baris: deployment.template.jsonserta**/module.json. Kedua file ini berfungsi sebagai input untuk menghasilkan manifes penyebaran IoT Edge.Folder Tujuan Silakan tentukan variabel $(Build.ArtifactStagingDirectory). Lihat Variabel Build untuk mempelajari deskripsinya.Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat Tugas menyalin file.
Pilih langkah Terbitkan Artefak Build untuk mengeditnya. Berikan jalur direktori penahapan artefak ke dalam tugas agar jalur tersebut dapat dipublikasikan ke dalam alur rilis.
Pengaturan Deskripsi Nama tampilan Gunakan nama default atau sesuaikan. Tahapan untuk menerbitkan Silakan tentukan variabel $(Build.ArtifactStagingDirectory). Lihat variabel build untuk mempelajari selengkapnya.Nama artefak Gunakan nama default: jatuhkan Lokasi publikasi artefak Gunakan lokasi default: Azure Pipelines Untuk informasi selengkapnya tentang tugas ini dan parameternya, lihat Tugas Menerbitkan Artefak Build.
Buka tab Pemicu dan centang kotak untuk Aktifkan integrasi berkelanjutan. Pastikan bahwa cabang yang berisi kode Anda sudah disertakan.
- Pilih Simpan dari dropdown antrean Simpan &.
Alur ini sekarang dikonfigurasi untuk berjalan secara otomatis saat Anda mendorong kode baru ke repositori Anda. Tugas terakhir, menerbitkan artefak pipeline, memicu alur rilis. Lanjutkan ke bagian berikutnya untuk membangun alur perilisan.
Membuat alur rilis untuk penyebaran berkelanjutan
Di bagian ini, Anda membuat pipelines rilis yang dikonfigurasi agar berjalan secara otomatis ketika alur build Anda menghasilkan artefak, dan log-log penyebaran akan ditampilkan 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 tombol 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:
Pengaturan Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Tindakan Pilih Generate deployment manifest.File .template.json Tentukan jalur: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Jalur ini diterbitkan dari alur build.Platform bawaan Pilih sistem operasi yang sesuai untuk modul Anda berdasarkan perangkat IoT Edge yang Anda targetkan. Jalur keluaran Letakkan jalur $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Ini adalah jalur menuju file manifes akhir dalam penyebaran IoT Edge.Konfigurasi ini membantu mengganti URL gambar modul dalam
deployment.template.jsonfile. Generate deployment manifest juga membantu mengganti variabel dengan nilai persis yang Anda tentukan dalamdeployment.template.jsonberkas. Di Visual Studio/Visual Studio Code, Anda menentukan nilai aktual dalam.envfile. 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. Menghasilkan manifes penyebaran hanya dapat mengenali variabel yang
${VARIABLE}tipe. Pastikan Anda menggunakan rasa ini dalam file*.template.jsonAnda."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:
Pengaturan Deskripsi Nama tampilan Nama tampilan akan diperbarui secara otomatis saat bidang Tindakan diubah. Tindakan Pilih Deploy to IoT Edge devices.Berkas penyebaran Letakkan jalur $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Jalur ini adalah file manifes penyebaran 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 untuk menyelaraskan dengan sekumpulan 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 sasaran Bergantung pada pilihan sebelumnya, tentukan ID perangkat atau kondisi target untuk diterapkan ke beberapa perangkat. Tingkat Lanjut Untuk ID penyebaran IoT Edge, tentukan $(System.TeamProject)-$(Release.EnvironmentName). Variabel ini mengaitkan ID penyebaran IoT Edge Anda dengan nama proyek dan rilis.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 ke
trueuntuk melewati validasi gambar.
Pilih Simpan untuk menyimpan perubahan Anda ke alur rilis baru. Kembali ke tampilan alur dengan memilih tab Alur dari menu.
Nota
Penyebaran berlapis belum didukung dalam tugas Azure IoT Edge di Azure DevOps.
Namun, Anda dapat menggunakan tugas Azure CLI di Azure DevOps untuk membuat penyebaran Anda sebagai penyebaran berlapis. Untuk nilai Skrip Sebaris , Anda dapat menggunakan perintah az iot edge deployment create:
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 build, Anda dapat melakukan push 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 Pipelines dan buka pipeline 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 Jalankan pipeline. Lalu pilih Eksekusi.
Pilih Tugas agen 1 untuk melihat kemajuan proses. 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 saluran pemrosesan data Anda gagal, mulailah dengan melihat log. Anda dapat melihat log dengan membuka ringkasan pelaksanaan alur dan memilih pekerjaan serta tugas. Jika ada tugas tertentu yang gagal, periksa log tugas tersebut. 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.