Azure IoT Edge cihazlarına sürekli entegrasyon ve sürekli dağıtım

Şunun için geçerlidir:IoT Edge 1.6 onay işareti IoT Edge 1.6

Önemli

IoT Edge 1.6 LTS desteklenen sürümdür. IoT Edge 1.5 LTS desteği 10 Kasım 2026'da sona erer; IoT Edge 1.4 LTS, 12 Kasım 2024'te ömrünün sonuna ulaştı. Önceki bir sürümü kullanıyorsanız bkz. Update IoT Edge.

Azure Pipelines'daki yerleşik Azure IoT Edge görevlerini kullanarak devOps'yi Azure IoT Edge uygulamalarla benimseyin. Bu makalede YAML kullanarak Azure IoT Edge modülleri derlemek, test etmek ve dağıtmak için Azure Pipelines nasıl kullanılacağı gösterilmektedir.

Geliştirme ve üretim için sürekli tümleştirme ve sürekli geliştirme dallarının diyagramı.

Bu makalede, IoT Edge çözümünüz için derleme ve yayın işlem hatları oluşturmak üzere Azure Pipelines için yerleşik Azure IoT Edge görevlerini kullanmayı öğreneceksiniz. İşlem hattındaki her Azure IoT Edge görevi aşağıdaki eylemlerden birini gerçekleştirir:

Eylem Açıklama
Modül görüntüleri oluşturma IoT Edge çözüm kodunuzu alır ve kapsayıcı görüntülerini oluşturur.
Modül görsellerini yükle Modül görüntülerini belirttiğiniz kapsayıcı kayıt defterine gönderir.
Dağıtım bildirimi oluşturma bir deployment.template.json dosyasını ve değişkenleri alır, ardından son IoT Edge dağıtım bildirim dosyasını oluşturur.
IoT Edge cihazlara dağıtma Bir veya daha fazla IoT Edge cihazına IoT Edge dağıtımları oluşturur.

Belirtilmediği sürece, bu makale görev parametreleri aracılığıyla sağlanan tüm işlevleri kapsamaz. Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Önkoşullar

  • bir Azure Repos deposu. Deponuz yoksa projenizde yeni bir Git deposu oluşturun. Bu makale için depo ioTEdgeRepo olarak adlandırılır.

  • Bir IoT Edge çözümü, deponuza commit edilip itildi. Bu makaleyi test etmek üzere yeni bir örnek çözüm oluşturmak için Visual Studio Code kullanarak Azure IoT Edge modüllerini geliştirme adımlarını izleyin. Bu makale için, depomuzda filtermodule adlı modülün kodunu içeren IoTEdgeSolution adlı bir çözüm oluşturduk.

    Bu makalede ihtiyacınız olan tek şey, Visual Studio Code veya Visual Studio IoT Edge şablonları tarafından oluşturulan çözüm klasörüdür. Devam etmeden önce bu kodu derlemeniz, göndermeniz, dağıtmanız veya hatalarını ayıklamanız gerekmez. Azure Pipelines üzerinde bu süreçleri kurarsınız.

    Çözümünüzde birkaç adımda kullanılan deployment.template.json dosyasının yolunu bildiğinizden emin olun. tr-TR: Dağıtım şablonunun rolünü bilmiyorsanız, Modülleri dağıtmayı ve yolları oluşturmayı öğrenin kısmına bakın.

    İpucu

    Yeni bir çözüm oluşturuyorsanız önce deponuzu yerel olarak kopyalayın. Ardından, çözümü oluşturduğunuzda doğrudan depo klasöründe oluşturmayı seçebilirsiniz. Yeni dosyaları kolayca işleyebilir ve buradan gönderebilirsiniz.

  • Modül görüntülerini yükleyebileceğiniz bir kapsayıcı kayıt defteri. Azure Container Registry veya üçüncü taraf kayıt defteri kullanabilirsiniz.

  • Ayrı test ve üretim dağıtım aşamalarını test için en az iki IoT Edge cihazı olan etkin bir Azure IoT hub. Linux veya Windows üzerinde IoT Edge cihaz oluşturmak için hızlı başlangıç makalelerini izleyin.

Azure Repos'u kullanma hakkında daha fazla bilgi edinmek için Kodunuzu Visual Studio ve Azure Repos ile paylaşma'ya bakın.

Sürekli tümleştirme için derleme işlem hattı oluşturma

Bu bölümde yeni bir derleme işlem hattı oluşturacaksınız. IoT Edge örnek çözümünde herhangi bir değişiklik gönderdiğinizde ve derleme günlüklerini yayımladığınızda, işlem hattını otomatik olarak çalışacak şekilde yapılandırırsınız.

  1. Azure DevOps kuruluşunuzda (https://dev.azure.com/{your organization}) oturum açın ve IoT Edge çözüm deponuzu içeren projeyi açın.

    DevOps projenizi açmayı gösteren ekran görüntüsü.

  2. Projenizin sol bölme menüsünden İşlem Hatları'nı seçin. Sayfanın ortasında İşlem Hattı Oluştur'u seçin. Derleme işlem hatlarınız zaten varsa sağ üstteki Yeni işlem hattı düğmesini de seçebilirsiniz.

    Yeni işlem hattı düğmesini kullanarak yeni derleme işlem hattı oluşturmayı gösteren ekran görüntüsü.

  3. Kodunuz nerede? sayfasında Azure Repos Git YAML öğesini seçin.

  4. İşlem hattı oluşturmakta olduğunuz depoyu seçin.

    Derleme işlem hattınızın deposunu seçmeyi gösteren ekran görüntüsü.

  5. İşlem hattınızı yapılandırın sayfasında Başlangıç işlem hattı'nı seçin. Bu işlem hattını oluşturmak için kullanmak istediğiniz önceden var olan bir Azure Pipelines YAML dosyanız varsa Existing Azure Pipelines YAML dosyasını seçebilir ve depodaki dal ve yolu dosyaya sağlayabilirsiniz.

    Yapı işlem hattınızı başlatmak için Başlangıç işlem hattını veya Mevcut Azure Pipelines YAML dosyasını seçin

  6. İşlem hattınızı gözden geçirin YAML sayfasında, işlem hattınızın yapılandırma dosyasını yeniden adlandırmak için varsayılan adı azure-pipelines.yml seçebilirsiniz.

    Görevler paletini açmak için Yardımcıyı göster'i seçin.

    Görevler paleti açmak için Yardımcıyı göster'in nasıl seçildiğini gösteren ekran görüntüsü.

  7. Görev eklemek için imlecinizi YAML'nin sonuna veya göreviniz için yönergelerin eklenmesini istediğiniz yere getirin. Azure IoT Edge için arama yapın ve seçin, görevin parametrelerini aşağıdaki gibi doldurun ve ardından Add öğesini seçin.

    Parametre Açıklama
    Eylem Modül görüntüleri oluştur'a tıklayın.
    .template.json dosyası IoT Edge çözümünüzü içeren depoda deployment.template.json dosyasının yolunu belirtin.
    Varsayılan platform Hedeflenen IoT Edge cihazınıza göre modülleriniz için uygun işletim sistemini seçin.

    Bu görev ve parametreleri hakkında daha fazla bilgi için bkz. Azure IoT Edge task.

    Görevleri Kullan paletinin ve işlem hattınıza görevlerin nasıl ekleneceğini gösteren ekran görüntüsü.

    İpucu

    Her görev eklendikten sonra, düzenleyici eklenen satırları otomatik olarak vurgular. Yanlışlıkla üzerine yazmayı önlemek için satırların seçimini kaldırın ve daha fazla görev eklemeden önce sonraki göreviniz için yeni bir alan açın.

  8. Aşağıdaki parametrelerle üç görev daha eklemek için bu işlemi yineleyin:

    • Görev: Azure IoT Edge

      Parametre Açıklama
      Eylem Modül görüntülerini yükle'yi seçin.
      Konteyner kayıt defteri türü Varsayılan türü kullanın: Azure Container Registry.
      Azure aboneliği Aboneliğinizi seçin.
      Azure Container Registry İşlem hattı için kullanmak istediğiniz kayıt defterini seçin.
      .template.json dosyası IoT Edge çözümünüzü içeren depoda deployment.template.json dosyasının yolunu belirtin.
      Varsayılan platform Hedeflenen IoT Edge cihazınıza göre modülleriniz için uygun işletim sistemini seçin.

      Bu görev ve parametreleri hakkında daha fazla bilgi için bkz. Azure IoT Edge task.

    • Görev: Dosyaları Kopyalama

      Parametre Açıklama
      Kaynak Klasör Kopyalanacak kaynak klasör. Boş, deponun köküdür. Dosyalar depoda değilse değişkenleri kullanın. Örnek: $(agent.builddirectory).
      İçindekiler İki satır ekleyin: deployment.template.json ve modules/**/module.json.
      Hedef Klasör değişkenini $(Build.ArtifactStagingDirectory)belirtin. Açıklama hakkında bilgi edinmek için Derleme değişkenleri bölümüne bakın.

      Bu görev ve parametreleri hakkında daha fazla bilgi için bkz . Dosyaları kopyalama görevi.

    • Görev: Derleme Yapı Öğelerini Yayımlama

      Parametre Açıklama
      Yayımlama yolu değişkenini $(Build.ArtifactStagingDirectory)belirtin. Açıklama hakkında bilgi edinmek için Derleme değişkenleri bölümüne bakın.
      Yapıt adı Varsayılan adı belirtin: drop
      Artifakt yayımlama konumu Varsayılan konumu kullanın: Azure Pipelines

      Bu görev ve parametreleri hakkında daha fazla bilgi için bkz Derleme yapıtları görevinin yayımlanması.

  9. Sağ üstteki Kaydet ve çalıştır açılan listesinden Kaydet'i seçin.

  10. Sürekli tümleştirme tetikleyicisi YAML işlem hattınız için varsayılan olarak etkindir. Bu ayarları düzenlemek istiyorsanız işlem hattınızı seçin ve sağ üstteki Düzenle'yi seçin. Sağ üstteki Çalıştır düğmesinin yanındaki Diğer eylemler'i seçin ve Tetikleyiciler'e gidin. Sürekli tümleştirme , işlem hattınızın adının altında etkin olarak gösterilir. Tetikleyicinin ayrıntılarını görmek istiyorsanız, BURADAN YAML sürekli tümleştirme tetikleyicisini geçersiz kıl kutusunu işaretleyin.

Diğer eylemler altındaki Tetikleyiciler menüsünden işlem hattınızın tetikleyici ayarlarını gözden geçirmeyi gösteren ekran görüntüsü.

Yayın işlem hattını oluşturmak için sonraki bölüme geçin.

Sürekli dağıtım için yayın işlem hattı oluşturma

Bu bölümde, derleme işlem hattınız yapıtları bıraktığında otomatik olarak çalışacak şekilde yapılandırılmış bir yayın işlem hattı oluşturursunuz ve Azure Pipelines dağıtım günlüklerini gösterir.

Yeni bir işlem hattı oluşturun ve yeni bir aşama ekleyin:

  1. Yayınlar sekmesinde Pipelines altındaki + Yeni işlem hattı'nı seçin. Ya da yayın işlem hatlarınız zaten varsa + Yeni düğmesini ve + Yeni yayın işlem hattı'nı seçin.

    + Yeni işlem hattı düğmesini kullanarak bir yayın işlem hattı ekleyin

  2. Şablon seçmeniz istendiğinde Boş iş ile başlamayı seçin.

    Yayın işlem hattınız için boş bir iş ile başlayın

  3. Yeni yayın işlem hattınız, Aşama 1 adlı tek bir aşamayla başlatılır. Aşama 1'i dev olarak yeniden adlandırın ve geliştirme ortamınız için sürekli bir dağıtım işlem hattı olarak değerlendirin. Genellikle sürekli dağıtım işlem hatlarının geliştirme, hazırlama ve üretim gibi birden çok aşaması vardır. DevOps uygulamanıza göre farklı adlar kullanabilir ve daha fazlasını oluşturabilirsiniz. Yeniden adlandırıldıktan sonra aşama ayrıntıları penceresini kapatın.

    Ayrıca üstteki "Yeni yayın işlem hattı" metnini seçerek yayın işlem hattınızı yeniden adlandırabilirsiniz.

  4. Sürümü, derleme işlem hattı tarafından yayımlanan derleme çıktılarıyla bağlayın. Eserler alanında Ekle'yi seçin.

    Arabirimdeki artifaktlar alanına ekle'ye tıklayın

  5. Yapıt ekle sayfasında Kaynak türü olarak Oluştur'atıklayın. Oluşturduğunuz projeyi ve derleme işlem hattını seçin. İsterseniz Kaynak adını daha açıklayıcı bir adla değiştirebilirsiniz. Ardından Ekle'yi seçin.

    Yapıt ekleme sayfasında Ekle'yi seçerek yapıtı oluşturun

  6. Yapı tetikleyicilerini açın ve sürekli dağıtım tetikleyicisini etkinleştirmek için anahtarı seçin. Artık her yeni derleme kullanılabilir olduğunda yeni bir sürüm oluşturulur.

    Artifact tetikleyicilerini açın ve sürekli dağıtım tetikleyicisini etkinleştirmek için anahtarı değiştirin

  7. Geliştirme aşaması bir iş ve sıfır görevle önceden yapılandırılmıştır. İşlem hattı menüsünden Görevler öğesini seçin, ardından dev aşamasını seçin. Aracı işini seçin ve Görünen adınıQA olarak değiştirin. Aracı işiyle ilgili ayrıntıları yapılandırabilirsiniz, ancak dağıtım görevi platforma duyarsız olduğundan, seçilen Aracı havuzunda herhangi bir Aracı belirtimini kullanabilirsiniz.

    Geliştirme aşamanızın görevlerini Görevler sekmesinin altında görüntüleme

  8. Kalite Kontrol işinde artı işaretini (+) seçerek iki görev ekleyin. Azure IoT Edge'i arayın ve iki kez ekleyin.

  9. İlk Azure IoT Edge görevini seçin ve aşağıdaki değerlerle yapılandırın:

    Parametre Açıklama
    Görünen ad Eylem alanı değiştiğinde görünen ad otomatik olarak güncelleştirilir.
    Eylem Generate deployment manifest'ı seçin.
    .template.json dosyası Yolu belirtin: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Yol, derleme işlem hattından yayımlanır.
    Varsayılan platform Hedeflenen IoT Edge cihazınıza göre modülleriniz için uygun işletim sistemini seçin.
    Çıkış yolu yolunu $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.jsongirin. Bu yol, nihai IoT Edge dağıtım bildirim dosyasıdır.

    Bu yapılandırmalar, deployment.template.json dosyasındaki modül görüntüsü URL'lerini değiştirmeye yardımcı olur. Dağıtım oluştur bildirimi, değişkenlerin dosyasında tanımladığınız tam değerle değiştirilmesine deployment.template.json de yardımcı olur. Visual Studio/Visual Studio Code'da, .env dosyasında gerçek değeri belirtirsiniz. Azure Pipelines'da değeri Release Pipeline Variables sekmesinde ayarlarsınız. Variables sekmesine gidin ve adı ve değeri aşağıdaki gibi yapılandırın:

    • ACR_ADDRESS: Azure Container Registry Giriş sunucusu değeri. oturum açma sunucusunu Azure portalındaki kapsayıcı kayıt defterinizin Genel Bakış sayfasından alabilirsiniz.
    • ACR_PASSWORD: Azure Container Registry parolanız.
    • ACR_USER: Azure Container Registry kullanıcı adınız.

    Projenizde başka değişkenler varsa, bu sekmede adı ve değeri belirtebilirsiniz. Dağıtım oluştur bildirimi yalnızca flavor içindeki ${VARIABLE} değişkenleri tanıyabilir. Dosyalarınızda *.template.json bu versiyonu kullandığınızdan emin olun.

    "registryCredentials": {
      "<ACR name>": { // Your Azure Container Registry **Registry name** value
        "username": "${ACR_USER}",
        "password": "${ACR_PASSWORD}",
        "address": "${ACR_ADDRESS}"
      }
    }
    

    Değişkenler sekmesinde yayın işlem hattınızın değişkenlerini yapılandırma

  10. İkinci Azure IoT Edge görevini seçin ve aşağıdaki değerlerle yapılandırın:

    Parametre Açıklama
    Görünen ad Eylem alanı değiştiğinde görünen ad otomatik olarak güncelleştirilir.
    Eylem Deploy to IoT Edge devices'ı seçin.
    Dağıtım dosyası yolunu $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.jsongirin. Bu yol, dağıtım bildirim dosyası IoT Edge dosyasıdır.
    Azure aboneliği IoT Hub içeren aboneliği seçin.
    IoT Hub adı IoT hub'ınızı seçin.
    Tek/birden çok cihaz seçme Yayın işlem hattının bir veya birden çok cihaza dağıtılmasını isteyip istemediğinizi seçin. Tek bir cihaza dağıtırsanız IoT Edge cihaz kimliğini girin. Birden çok cihaza dağıtıyorsanız cihaz hedef koşulunu belirtin. Hedef koşul, IoT Hub'daki bir IoT Edge cihaz kümesiyle eşleşen bir filtredir. Koşul olarak cihaz etiketlerini kullanmak istiyorsanız ilgili cihaz etiketlerinizi IoT Hub cihaz ikizi ile güncelleştirmeniz gerekir. Gelişmiş ayarlarda IoT Edge dağıtım kimliğini ve IoT Edge dağıtım önceliğini güncelleştirin. Birden çok cihaz için dağıtım oluşturma hakkında daha fazla bilgi için bkz. IoT Edge otomatik dağıtımları anlama.
    Cihaz kimliği veya hedef koşulu Önceki seçime bağlı olarak, birden çok cihaza dağıtmak için bir cihaz kimliği veya hedef koşulu belirtin.
    Gelişmiş IoT Edge dağıtım kimliği için $(System.TeamProject)-$(Release.EnvironmentName) belirtin. Bu değişken, proje ve yayın adını IoT Edge dağıtım kimliğiniz ile eşler.

    Göreviniz, genel buluta görünmeyen özel bir Docker Güvenilen Kayıt Defteri'nde bulunan bir görüntünün kullanılmasını içeriyorsa, görüntü doğrulamayı atlamak için SKIP_MODULE_IMAGE_VALIDATION ortam değişkenini ayarlayabilirsiniz.

     Geliştirme aşamanız için Azure IoT Edge görevleri ekleme

  11. Değişikliklerinizi yeni yayın işlem hattına kaydetmek için Kaydet'i seçin. Menüden İşlem Hattı sekmesini seçerek işlem hattı görünümüne dönün.

CI/CD IoT Edge'i derleme ve yayın işlem hatlarıyla doğrulayın.

Derleme görevini tetiklemek için, kaynak kod deposuna bir komit iterek gönderebilir veya el ile tetikleyebilirsiniz. Bu bölümde, CI/CD işlem hattının çalışıp çalışmadığını test etmek için el ile tetiklersiniz. Ardından dağıtımın başarılı olduğunu doğrulayın.

  1. Sol panel menüsünden İşlem hatları'nı seçin ve bu makalenin başında oluşturulan derleme işlem hattını açın.

  2. Sağ üstteki İşlem hattını çalıştır düğmesini seçerek derleme işlem hattınızda bir derleme işini tetikleyebilirsiniz.

    Çalıştır düğmesini kullanarak işlem hattını manuel olarak tetikleyin

  3. İşlem hattı çalıştırma ayarlarını gözden geçirin. Ardından Çalıştır'ı seçin.

    İşlem hattı çalıştırma seçeneklerini belirtin ve Çalıştır'ı seçin

  4. İlerleme durumunu izlemek için Aracı işi 1'i seçin. İşi seçerek işin çıktı günlüklerini gözden geçirebilirsiniz.

    Görevin log çıktısını gözden geçirin

  5. Derleme işlem hattı başarıyla tamamlanırsa geliştirme aşamasına bir yayın tetikler. Başarılı dev sürümü, IoT Edge cihazlarını hedefleyen bir IoT Edge dağıtımı oluşturur.

    Geliştiriciye Yayınla

  6. Sürüm günlüklerini görmek için geliştirme aşamasını seçin.

    Yayın günlükleri

  7. Boru hattınız başarısız oluyorsa, öncelikle kayıtları kontrol edin. İşlem hattı çalıştırma özetine gidip işi ve görevi seçerek günlükleri görüntüleyebilirsiniz. Belirli bir görev başarısız olursa, söz konusu görevin günlüklerini denetleyin. Günlükleri yapılandırma ve kullanma hakkında ayrıntılı yönergeler için bkz . İşlem hattı sorunlarını tanılamak için günlükleri gözden geçirme.

Sonraki adımlar