Azure IoT Edge cihazlarına sürekli tümleştirme ve sürekli dağıtım
Şunlar için geçerlidir: IoT Edge 1.5 IoT Edge 1.4
Önemli
IoT Edge 1.5 LTS ve IoT Edge 1.4 LTS desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te kullanım ömrü sona erer. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.
Azure Pipelines'daki yerleşik Azure IoT Edge görevleriyle Azure IoT Edge uygulamalarınızla DevOps'yi kolayca benimseyebilirsiniz. Bu makalede, YAML kullanarak Azure IoT Edge modülleri oluşturmak, test etmek ve dağıtmak için Azure Pipelines'ı nasıl kullanabileceğiniz gösterilmektedir. Alternatif olarak klasik düzenleyiciyi de kullanabilirsiniz.
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. |
Gönderme modülü görüntüleri | 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'e cihazlarına dağıtma | Bir veya daha fazla IoT Edge cihazına IoT Edge dağıtımları oluşturur. |
Aksi belirtilmediği sürece, bu makaledeki yordamlar görev parametreleri aracılığıyla kullanılabilen tüm işlevleri keşfetmez. Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:
Önkoşullar
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'da 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üzün çeşitli adımlarda kullanılan deployment.template.json dosyasının yolunu bilin. Dağıtım şablonunun rolünü bilmiyorsanız bkz . Modülleri dağıtmayı ve yolları oluşturma hakkında bilgi edinin.
İ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 gönderebileceğ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ına sahip etkin bir Azure IoT hub'ı . Linux veya Windows üzerinde IoT Edge cihazı oluşturmak için hızlı başlangıç makalelerini izleyebilirsiniz
Azure Repos'ı kullanma hakkında daha fazla bilgi için bkz . Visual Studio ve Azure Repos ile kodunuzu paylaşma.
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. Örnek IoT Edge çözümünde yapılan değişiklikleri iade ettiğinizde ve derleme günlüklerini yayımladığınızda işlem hattını otomatik olarak çalışacak şekilde yapılandırabilirsiniz.
Azure DevOps kuruluşunuzda (
https://dev.azure.com/{your organization}
) oturum açın ve IoT Edge çözüm deponuzu içeren projeyi açın.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ğ üstteki Yeni işlem hattı düğmesini de seçebilirsiniz.
Kodunuz nerede? sayfasında Azure Repos Git'i
YAML
seçin. Projenizin derleme işlem hatlarını oluşturmak için klasik düzenleyiciyi kullanmak istiyorsanız klasik düzenleyici kılavuzuna bakın.İşlem hattı oluşturmakta olduğunuz depoyu seçin.
İş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 Mevcut Azure Pipelines YAML dosyasını seçebilir ve depodaki dal ve yolu dosyaya sağlayabilirsiniz.
İş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örev eklemek için imlecinizi YAML'nin sonuna veya göreviniz için yönergelerin eklenmesini istediğiniz yere getirin. Azure IoT Edge'i arayın ve seçin. Görevin parametrelerini aşağıdaki gibi doldurun. Ardından Ekle'yi 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 depodaki 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 görevi.
İ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 ek görevler eklemeden önce sonraki göreviniz için yeni bir alan sağlayın.
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 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 İşlem hattı için kullanmak istediğiniz kayıt defterini seçin. .template.json dosyası IoT Edge çözümünüzü içeren depodaki 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 görevi.
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**/module.json
.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 . Dosyaları kopyalama görevi.
Görev: Derleme Yapıtlarını Yayımlama
Parametre Açıklama Yayımlama yolu değişkenini $(Build.ArtifactStagingDirectory)
belirtin. Açıklama hakkında bilgi edinmek için bkz . Değişken oluşturma.Yapıt adı Varsayılan adı belirtin: drop
Yapıt 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örevini yayımlama.
Sağ üstteki Kaydet ve çalıştır açılan listesinden Kaydet'i seçin.
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 isterseniz, BURADAN YAML sürekli tümleştirme tetikleyicisini geçersiz kıl kutusunu işaretleyin.
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:
Yayınlar sekmesinde İşlem Hatları'nın altında + 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.
Şablon seçmeniz istendiğinde Boş iş ile başlamayı seçin.
Yeni yayın işlem hattınız, Aşama 1 adlı tek bir aşamayla başlatılır. Aşama 1'i geliştirme için yeniden adlandırın ve geliştirme ortamınız için sürekli 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.
Sürümü, derleme işlem hattı tarafından yayımlanan derleme yapıtlarına bağlayın. Yapıtlar alanına ekle'yi seçin.
Yapıt ekle sayfasında Kaynak türü olarak Oluştur'a tıklayın. 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 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şturulur.
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ş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.
Soru-Cevap işinde artı işaretini (+) seçerek iki görev ekleyin. Azure IoT Edge'i iki kez arayın ve ekleyin.
İ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.json
girin. 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şkenlerin dosyasında tanımladığınız tam değerle değiştirilmesinedeployment.template.json
de yardımcı olur. Visual Studio/Visual Studio Code'da, bir.env
dosyadaki gerçek değeri belirtirsiniz. Azure Pipelines'da, Yayın İşlem Hattı Değişkenleri sekmesinde değeri 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ı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 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}" } }
İ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.json
girin. Bu yol, IoT Edge dağıtım bildirim dosyasıdır.Azure aboneliği IoT Hub'ınızı 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ım yaparsanı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 dizi IoT Edge cihazıyla eşleşecek 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ını 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 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
true
SKIP_MODULE_IMAGE_VALIDATION ortam değişkenini ayarlayabilirsiniz.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.
Derleme ve yayın işlem hatlarıyla IoT Edge CI/CD'yi doğrulama
Derleme işini tetikleyebilmek için bir işlemeyi kaynak kod deposuna 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.
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.
Sağ üstteki İşlem hattını çalıştır düğmesini seçerek derleme işlem hattınızda bir derleme işini tetikleyebilirsiniz.
İşlem hattı çalıştırma ayarlarını gözden geçirin. Ardından Çalıştır'ı seçin.
Çalıştırmanın ilerleme durumunu izlemek 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.
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ını hedeflemek için IoT Edge dağıtımı oluşturur.
Sürüm günlüklerini görmek için geliştirme aşamasını seçin.
İş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
- Tek cihazlar için veya uygun ölçekte IoT Edge dağıtımlarını anlama bölümünde IoT Edge dağıtımını anlama
- IoT Edge modüllerini büyük ölçekte dağıtma ve izleme bölümünde dağıtım oluşturma, güncelleştirme veya silme adımlarını izleyin.