Bagikan melalui


Integrasi berkelanjutan dan penyebaran berkelanjutan ke perangkat Azure IoT Edge (editor klasik)

Berlaku untuk:Tanda centang IoT Edge 1.4 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.

Diagram integrasi berkelanjutan dan cabang pengembangan berkelanjutan untuk pengembangan dan produksi .

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:

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.

  1. Silakan masuk ke organisasi Azure DevOps Anda (https://dev.azure.com/{your organization}) dan buka proyek yang berisi repositori solusi IoT Edge Anda.

    Cuplikan layar yang memperlihatkan cara membuka proyek DevOps Anda.

  2. 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.

    Cuplikan layar yang memperlihatkan cara membuat alur build baru.

  3. 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 .

    Cuplikan layar yang menunjukkan cara menggunakan editor klasik.

  4. Ikuti perintah untuk membuat alur Anda.

    1. 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.

      Cuplikan layar memperlihatkan cara memilih sumber alur Anda.

    2. Pilih Pekerjaan kosong alih-alih templat.

      Cuplikan layar memperlihatkan cara memulai dengan job kosong untuk alur build Anda.

  5. 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:

    Mengonfigurasi spesifikasi agen build.

  6. 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.

    Tambahkan tugas Azure IoT Edge.

    Saat keempat tugas ditambahkan, pekerjaan Agen Anda terlihat seperti contoh berikut:

    Empat tugas dalam alur build.

  7. 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.json untuk memberi nama dan menandai gambar modul. Membuat gambar modul juga membantu mengganti variabel dengan nilai yang tepat yang Anda tentukan dalam file module.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.json Anda.

  8. 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.

  9. 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.json serta **/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.

  10. 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.

  11. Buka tab Pemicu dan centang kotak untuk Aktifkan integrasi berkelanjutan. Pastikan bahwa cabang yang berisi kode Anda sudah disertakan.

Cuplikan layar memperlihatkan cara mengaktifkan pemicu integrasi berkelanjutan.

  1. 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:

  1. Di tab Rilis di bawah Pipeline, pilih + Alur baru. Atau, jika Anda sudah memiliki alur rilis, pilih tombol + Baru dan pilih + Alur rilis baru.

    Menambahkan alur rilis menggunakan tombol + Alur baru

  2. Ketika diminta untuk memilih templat, pilih untuk memulai dengan pekerjaan Kosong.

    Mulai dengan tugas kosong untuk jalur pelepasan Anda

  3. 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.

  4. Tautkan rilis ke artefak build yang diterbitkan oleh alur build. Klik Tambahkan di area artefak.

    Klik Tambah pada area artefak di antarmuka

  5. 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.

    Pada halaman tambahkan artefak, pilih Tambahkan untuk membuat artefak

  6. Buka pemicu artefak dan pilih tombol untuk mengaktifkan pemicu penyebaran berkelanjutan. Sekarang, rilis baru akan dibuat setiap kali build baru tersedia.

    Buka pemicu artefak dan beralih untuk mengaktifkan pemicu penyebaran berkelanjutan

  7. 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.

    Menampilkan tugas untuk tahap dev Anda di bawah tab Tugas

  8. Pada tugas QA, pilih tanda plus (+) untuk menambahkan dua tugas. Cari dan tambahkan Azure IoT Edge dua kali.

  9. 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.json file. Generate deployment manifest juga membantu mengganti variabel dengan nilai persis yang Anda tentukan dalam deployment.template.json berkas. 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. Menghasilkan manifes penyebaran hanya dapat mengenali variabel yang ${VARIABLE} tipe. 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}"
      }
    }
    

    Mengonfigurasi variabel untuk alur rilis Anda di tab Variabel

  10. 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 true untuk melewati validasi gambar.

    Menambahkan tugas Azure IoT Edge untuk tahap dev Anda

  11. 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.

  1. Dari menu panel kiri, pilih Pipelines dan buka pipeline build yang Anda buat di awal artikel ini.

  2. Anda dapat memicu tugas build di alur build dengan memilih tombol Eksekusi alur di kanan atas.

    Memulai alur build Anda secara manual menggunakan tombol Menjalankan alur

  3. Tinjau pengaturan Jalankan pipeline. Lalu pilih Eksekusi.

    Menentukan opsi jalankan alur dan memilih Eksekusi

  4. Pilih Tugas agen 1 untuk melihat kemajuan proses. Anda dapat meninjau log output pekerjaan dengan memilih pekerjaan.

    Meninjau output log pekerjaan

  5. 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.

    Rilis ke pengembang

  6. Klik tahap dev untuk melihat log rilis.

    Melihat log rilis

  7. 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