Azure IoT Edge cihazlarına sürekli tümleştirme ve sürekli dağıtım (klasik düzenleyici)

Şunlar için geçerlidir:IoT Edge 1.4 onay işareti IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümü kullanıyorsanız, IoT Edge’i güncelleştirme makalesine bakın.

Azure Pipelines, Azure IoT Edge uygulamalarınızla DevOps'yu benimsemenize yardımcı olan yerleşik bir Azure IoT Edge görevi içerir. Bu makalede, klasik düzenleyiciyi kullanarak azure IoT Edge uygulamaları hızlı ve verimli bir şekilde derlemek, test etmek ve dağıtmak için Azure Pipelines'ın sürekli tümleştirme ve sürekli dağıtım özelliklerinin nasıl kullanılacağı gösterilmektedir. Alternatif olarak , YAML kullanabilirsiniz.

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ınıza eklenen her Azure IoT Edge görevi aşağıdaki dört eylemden birini uygular:

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örüntülerini gönderme Modül görüntülerini belirttiğiniz kapsayıcı kayıt defterine gönderir.
Dağıtım bildirimi oluşturma Deployment.template.json dosyasını ve değişkenlerini alır, ardından dağıtım bildirim dosyasının son IoT Edge oluşturur.
IoT Edge'e cihazlarına dağıtma Bir veya daha fazla IoT Edge cihaza IoT Edge dağıtımları oluşturur.

Aksi belirtilmedikçe, bu makaledeki yordamlar görev parametreleri aracılığıyla kullanılabilen tüm işlevleri keşfetmez. Daha fazla bilgi için aşağıdaki kaynaklara bakın:

Önkoşullar

  • bir Azure Repos deposu. Deponuz yoksa projenizde yeni bir Git deposu oluşturabilirsiniz. Bu makale için IoTEdgeRepo adlı bir depo oluşturduk.

  • İşlenip deponuza gönderilen bir IoT Edge çözümü. Bu makaleyi test etmek için yeni bir örnek çözüm oluşturmak istiyorsanız, Visual Studio Code kullanarak Azure IoT Edge modülleri geliştirme başlığındaki adımları 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'daki 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. Bu işlemleri Azure Pipelines'da ayarlayacaksınız.

    Çözümünüzde birkaç adımda kullanılan deployment.template.json dosyasının yolunu öğrenin. Dağıtım şablonunun rolünü bilmiyorsanız bkz. Modülleri dağıtmayı ve yolları belirlemeyi öğrenin.

    İ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. Buradan kolayca yeni dosyaları işleyebilir ve gönderebilirsiniz.

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

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

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. İşlem hattını otomatik olarak çalışacak ve IoT Edge çözümündeki değişiklikleri iade ettiğiniz her durumda derleme günlüklerini yayımlayacak şekilde yapılandırabilirsiniz.

  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 projenizin nasıl açıldığını gösteren ekran görüntüsü.

  2. Projenizin sol bölme menüsünde İş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ğ üst kısımdaki Yeni işlem hattı düğmesini de seçebilirsiniz.

    Yeni derleme işlem hattı oluşturmayı gösteren ekran görüntüsü.

  3. Kodunuz nerede? sayfasının en altında Klasik düzenleyiciyi kullan'ı seçin. Projenizin derleme işlem hatlarını oluşturmak için YAML kullanmak istiyorsanız YAML kılavuzuna bakın.

    Klasik düzenleyicinin nasıl kullanılacağını gösteren ekran görüntüsü.

  4. İşlem hattınızı oluşturmak için istemleri izleyin.

    1. Yeni derleme işlem hattınız için kaynak bilgileri sağlayın. Kaynak olarak Git'i Azure Repos ve ardından IoT Edge çözüm kodunuzun bulunduğu projeyi, depoyu ve dalı seçin. Ardından Devam'ı seçin.

      İşlem hattı kaynağınızı seçme adımlarını gösteren ekran görüntüsü.

    2. Şablon yerine boş iş'i seçin.

      Derleme işlem hattınız için boş bir iş ile nasıl başlayacağınızı gösteren ekran görüntüsü.

  5. İşlem hattınız oluşturulduktan sonra işlem hattı düzenleyicisine yönlendirilirsiniz. Burada işlem hattının adını, aracı havuzunu ve aracı belirtimini değiştirebilirsiniz.

    Microsoft tarafından barındırılan bir havuz veya yönettiğiniz şirket içinde barındırılan bir havuz seçebilirsiniz.

    İşlem hattı açıklamanızda hedef platformunuza göre doğru aracı belirtimini seçin:

    Derleme aracısı belirtimlerini yapılandırın.

  6. İşlem hattınız Aracı işi 1 adlı bir iş ile önceden yapılandırılmış olarak gelir. İşe dört görev eklemek için artı işaretini (+) seçin: Azure IoT Edge iki kez, Dosyaları Bir Kez Kopyala ve Derleme Yapıtlarını Bir Kez Yayımla. Her görevi arayın ve Ekle düğmesini görmek için görevin adının üzerine gelin.

    Azure IoT Edge görevi ekleme.

    Dört görevin tümü eklendiğinde Aracı işiniz aşağıdaki örnekteki gibi görünür:

    Derleme işlem hattında dört görev.

  7. Düzenlemek için ilk Azure IoT Edge görevini seçin. Bu görev, belirttiğiniz hedef platformla çözümdeki tüm modülleri oluşturur. Görevi aşağıdaki değerlerle düzenleyin:

    Parametre Açıklama
    Görünen ad Eylem alanı değiştiğinde görünen ad otomatik olarak güncelleştirilir.
    Eylem Modül görüntüleri oluştur'a tıklayın.
    .template.json dosyası Üç noktayı (...) seçin ve IoT Edge çözümünüzü içeren depoda deployment.template.json dosyasına gidin.
    Varsayılan platform Hedeflenen IoT Edge cihazınıza göre modülleriniz için uygun işletim sistemini seçin.
    Çıkış değişkenleri edge gibi deployment.json dosyanızın oluşturduğu dosya yolu ile ilişkilendirmek için bir başvuru adı sağlayın.

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

    Bu yapılandırmalar, modül görüntüsünü adlandırmak ve etiketlemek için dosyada module.json tanımlanan görüntü deposunu ve etiketini kullanır. Modül görüntüleri derlemek , değişkenlerin dosyasında tanımladığınız tam değerle değiştirilmesine module.json de yardımcı olur. Visual Studio'da veya Visual Studio Code bir dosyada .env gerçek değeri belirtirsiniz. Azure Pipelines'da değeri İşlem Hattı Değişkenleri sekmesinde ayarlarsınız. İşlem hattı düzenleyicisi menüsünde Değişkenler sekmesini seçin ve adı ve değeri aşağıdaki gibi yapılandırın:

    • ACR_ADDRESS: Azure Container Registry Oturum açma sunucusu değeriniz. Oturum açma sunucusu değerini, Azure portal kapsayıcı kayıt defterinin genel bakış sayfasında bulabilirsiniz.

    Projenizde başka değişkenler varsa, bu sekmede adı ve değeri belirtebilirsiniz. Derleme modülü görüntüleri yalnızca biçimdeki ${VARIABLE} değişkenleri tanır. Dosyalarınızda **/module.json bu biçimi kullandığınızdan emin olun.

  8. düzenlemek için ikinci Azure IoT Edge görevini seçin. Bu görev tüm modül görüntülerini seçtiğiniz kapsayıcı kayıt defterine gönderir.

    Parametre Açıklama
    Görünen ad Eylem alanı değiştiğinde görünen ad otomatik olarak güncelleştirilir.
    Eylem Modül görüntülerini gönder'i seçin.
    Kapsayıcı kayıt defteri türü Varsayılan türü kullanın: Azure Container Registry.
    Azure aboneliği Aboneliğinizi seçin.
    Azure Container Registry Modül görüntülerinizi depolamak için kullandığınız kapsayıcı kayıt defteri türünü seçin. Seçtiğiniz kayıt defteri türüne bağlı olarak form değişir. Azure Container Registry seçerseniz, açılan listeleri kullanarak Azure aboneliğini ve kapsayıcı kayıt defterinizin adını seçin. Genel Kapsayıcı Kayıt Defteri'ni seçerseniz, kayıt defteri hizmeti bağlantısı oluşturmak için Yeni'yi seçin.
    .template.json dosyası Üç noktayı (...) seçin ve IoT Edge çözümünüzü içeren depoda deployment.template.json dosyasına gidin.
    Varsayılan platform Hedeflenen IoT Edge cihazınıza göre modülleriniz için uygun işletim sistemini seçin.
    Dağıtım bildirimine kayıt defteri kimlik bilgisi ekleme Docker görüntülerini dağıtım bildirimine göndermek için kayıt defteri kimlik bilgilerini eklemek için true değerini belirtin.

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

    Modül görüntülerinizi barındırmak için birden çok kapsayıcı kayıt defteriniz varsa, bu görevi yinelemeniz, farklı kapsayıcı kayıt defteri seçmeniz ve gelişmiş ayarlardaki Atlama modüllerini kullanarak bu belirli kayıt defterine yönelik olmayan görüntüleri atlamanız gerekir.

  9. Düzenlemek için Dosyaları Kopyala görevini seçin. Dosyaları yapıt hazırlama dizinine kopyalamak için bu görevi kullanın.

    Parametre Açıklama
    Görünen ad Varsayılan adı kullanma veya özelleştirme
    Kaynak klasör Kopyalanacak dosyaların olduğu klasör.
    İçindekiler İki satır ekleyin: deployment.template.json ve **/module.json. Bu iki dosya, IoT Edge dağıtım bildirimini oluşturmak için giriş görevi görür.
    Hedef Klasör değişkenini $(Build.ArtifactStagingDirectory)belirtin. Açıklama hakkında bilgi edinmek için bkz. Değişken oluşturma .

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

  10. Derleme Yapıtlarını Yayımla görevini seçerek düzenleyin. Yolun yayın işlem hattına yayımlanabilmesi için göreve yapıt hazırlama dizin yolu sağlayın.

    Parametre Açıklama
    Görünen ad Varsayılan adı kullanın veya özelleştirin.
    Yayımlama yolu değişkenini $(Build.ArtifactStagingDirectory)belirtin. Daha fazla bilgi edinmek için bkz. Değişken oluşturma .
    Yapıt adı Varsayılan adı kullan: drop
    Yapıt yayımlama konumu Varsayılan konumu kullan: Azure Pipelines

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

  11. Tetikleyiciler sekmesini açın ve Sürekli tümleştirmeyi etkinleştir kutusunu işaretleyin. Kodunuzu içeren dalın eklendiğinden emin olun.

Sürekli tümleştirme tetikleyicisini açmayı gösteren ekran görüntüsü.

  1. Kaydet & kuyruğu açılan listesinden Kaydet'i seçin.

Bu işlem hattı artık deponuza yeni kod gönderdiğinizde otomatik olarak çalışacak şekilde yapılandırılmıştır. İşlem hattı yapıtlarını yayımlamak için son görev bir yayın işlem hattını tetikler. 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 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 İşlem Hatları'nın altında + Yeni işlem hattı'nı seçin. Veya 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 yayın işlem hattı ekleme

  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. Geliştirme ortamınız için sürekli dağıtım işlem hattı olarak işlemek üzere 1. aşamayı yeniden adlandırın. 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 üst kısımdaki "Yeni yayın işlem hattı" metnini seçerek yayın işlem hattınızı yeniden adlandırabilirsiniz.

  4. Yayını derleme işlem hattı tarafından yayımlanan derleme yapıtlarına bağlayın. Yapıtlar alanına ekle'ye tıklayın.

    Arabirimin yapıtlar alanında Ekle'ye tıklayın

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

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

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

    Yapıt tetikleyicilerini açın ve sürekli dağıtım tetikleyicisini etkinleştirmek için iki durumlu düğmeyi açın

  7. Geliştirme aşaması bir iş ve sıfır görevle önceden yapılandırılmıştır. İşlem hattı menüsünde Görevler'i ve ardından geliştirme aşamasını seçin. Aracı işini seçin ve Görünen adınıSoru-Cevap olarak değiştirin. Aracı işi hakkındaki 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üleyin

  8. Soru-Cevap işinde, iki görev eklemek için artı işaretini (+) seçin. Azure IoT Edge iki kez arayın ve 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 öğesini 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, son IoT Edge dağıtım bildirim dosyasıdır.

    Bu yapılandırmalar, dosyadaki modül görüntüsü URL'lerinin değiştirilmesine deployment.template.json yardımcı olur. Dağıtım oluştur bildirimi, değişkenleri dosyada tanımladığınız tam değerle değiştirmenize deployment.template.json de yardımcı olur. Visual Studio/Visual Studio Code'da, bir .env dosyadaki gerçek değeri belirtirsiniz. Azure Pipelines'da Değeri Yayın İşlem Hattı Değişkenleri sekmesinde ayarlarsınız. Değişkenler sekmesine gidin ve adı ve değeri aşağıdaki gibi yapılandırın:

    • ACR_ADDRESS: Azure Container Registry Oturum açma sunucusu değeriniz. Oturum açma sunucusunu Azure portal 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 aromayı 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 öğesini 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. Otomatik dağıtımları IoT Edge anlama.
    Cihaz kimliği veya hedef koşulu Önceki seçime bağlı olarak, birden çok cihaza dağıtılacak bir cihaz kimliği veya hedef koşulu belirtin.
    Gelişmiş IoT Edge dağıtım kimliği için belirtin$(System.TeamProject)-$(Release.EnvironmentName). 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ü kullanmayı içeriyorsa, görüntü doğrulamayı atlamak için trueSKIP_MODULE_IMAGE_VALIDATION ortam değişkenini olarak 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.

Not

Katmanlı dağıtımlar henüz Azure DevOps'taki Azure IoT Edge görevlerinde desteklenmemektedir.

Ancak, dağıtımınızı katmanlı dağıtım olarak oluşturmak için Azure DevOps'ta bir Azure CLI görevi kullanabilirsiniz. Satır içi Betik değeri için az iot edge deployment create komutunu kullanabilirsiniz:

az iot edge deployment create -d {deployment_name} -n {hub_name} --content modules_content.json --layered true

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

Derleme işini tetikleyebilmek için bir işlemeyi kaynak kod deposuna gönderebilirsiniz 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 bölme menüsünde İşlem Hatları'nı seçin ve bu makalenin başında oluşturduğunuz derleme işlem hattını açın.

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

    İşlem hattını çalıştır düğmesini kullanarak derleme işlem hattınızı el ile tetikleme

  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. Çalıştırmanın ilerleme durumunu watch için Aracı işi 1'i seçin. İşi seçerek işin çıktısının günlüklerini gözden geçirebilirsiniz.

    İşin günlük çıkışını gözden geçirme

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

    Geliştirme sürümü

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

    Yayın günlükleri

  7. İşlem hattınız başarısız oluyorsa günlüklere bakarak başlayın. İş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