Azure IoT Edge cihazlara sürekli tümleştirme ve sürekli dağıtım
Uygulama hedefi:
IoT Edge 1,1
IoT Edge 1,2
Azure Pipelines içindeki yerleşik Azure IoT Edge görevlerle Azure IoT Edge uygulamalarınızla DevOps kolayca benimseyebilirsiniz. bu makalede, yaml kullanarak Azure IoT Edge modülleri derlemek, 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örevlerinin nasıl kullanılacağını öğrenirsiniz. İşlem hattınızı eklenen her bir Azure IoT Edge görevi aşağıdaki dört eylemden birini uygular:
| Eylem | Açıklama |
|---|---|
| Modül görüntülerini 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önder | Modül görüntülerini belirttiğiniz kapsayıcı kayıt defterine iter. |
| Dağıtım bildirimi oluştur | Dosya ve değişkenlerde bir deployment.template.jsalı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 cihazda IoT Edge dağıtımları oluşturur. |
Aksi belirtilmediği takdirde, bu makaledeki yordamlar görev parametreleri aracılığıyla kullanılabilen tüm işlevleri araştırmaz. Daha fazla bilgi için aşağıdaki kaynaklara bakın:
Önkoşullar
bir Azure Repos deposu. Bir tane yoksa, projenizde yeni bir git deposu oluşturabilirsiniz. Bu makalede, ıotedgerepo adlı bir depo oluşturduk.
IoT Edge bir çözüm kaydedilir ve deponuza gönderilir. bu makaleyi test etmek için yeni bir örnek çözüm oluşturmak istiyorsanız, Visual Studio Code 'da modül geliştirme ve hata ayıklama veya Visual Studio C# modüllerini geliştirme ve hataayıklama işlemleri bölümündeki adımları uygulayın. Bu makalede, depomızda filtermodule adlı bir modülün kodunu içeren IoTEdgeSolution adlı bir çözüm oluşturduk.
bu makalede, tek yapmanız gereken IoT Edge şablonlar tarafından Visual Studio Code veya Visual Studio tarafından oluşturulan çözüm klasörüdür. Devam etmeden önce bu kodu oluşturmanız, göndermeniz, dağıtmanız veya hata ayıklamanıza gerek yoktur. Azure Pipelines bu süreçlerini ayarlayacaksınız.
Çözümünüzde deployment.template.js , çeşitli adımlarda kullanılan dosyanın yolunu öğrenin. Dağıtım şablonunun rolünü tanımıyorsanız, bkz. modülleri dağıtmayı ve yolları oluşturmayı öğrenin.
İpucu
Yeni bir çözüm oluşturuyorsanız, deponuzu önce yerel olarak kopyalayın. Ardından, çözümü oluşturduğunuzda doğrudan depo klasöründe oluşturmayı seçebilirsiniz. Yeni dosyaları oradan kolayca kaydedebilir ve gönderebilirsiniz.
Modül görüntülerini ititebileceğiniz bir kapsayıcı kayıt defteri. Azure Container Registry veya bir üçüncü taraf kayıt defteri kullanabilirsiniz.
Ayrı test ve üretim dağıtımı aşamalarını test etmek için en az iki IoT Edge cihazı olan etkin bir Azure IoT Hub 'ı . Linux veya Windows üzerinde IoT Edge bir 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 kodunuzu paylaşma
Sürekli tümleştirme için derleme işlem hattı oluşturma
Bu bölümde, yeni bir yapı işlem hattı oluşturacaksınız. İşlem hattını, örnek IoT Edge çözümünde yapılan herhangi bir değişikliği iade ettiğinizde ve Derleme günlüklerini yayımlamak için otomatik olarak çalışacak şekilde yapılandırırsınız.
Azure DevOps kuruluşunuzda () oturum açın
https://dev.azure.com/{your organization}ve IoT Edge çözüm deponuzu içeren projeyi açın.
Projenizdeki sol bölmedeki menüden Pipelines' yi seçin. Sayfanın merkezinde işlem hattı oluştur ' u seçin. Ya da zaten derleme işlem hatlarınız varsa sağ üst köşedeki Yeni işlem hattı düğmesini seçin.

kodunuz nerede? sayfasında
YAMLGit Azure Repos' yi seçin. Projenizin derleme işlem hatlarını oluşturmak için klasik düzenleyiciyi kullanmak istiyorsanız Klasik düzenleyici kılavuzunabakın.İşlem hattı oluşturduğunuz depoyu seçin.

Ardışık düzen yapılandırma sayfasında Başlatıcı 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 depoya dosya için dala ve yola girebilirsiniz.

İşlem hattınızı gözden geçirin YAML sayfasında, işlem
azure-pipelines.ymlhattının yapılandırma dosyasını yeniden adlandırmak için varsayılan adı seçebilirsiniz.Görev paletini açmak Için yardımcıyı göster ' i seçin.

Bir görev eklemek için imlecinizi YAML 'nin sonuna veya göreviniz için yönergelerin eklenmesini istediğiniz yere yerleştirin. Arama yapın ve Azure IoT Edge seçin. Görevin parametrelerini aşağıdaki şekilde doldurun. Ardından Ekle' yi seçin.
Parametre Açıklama Eylem Derleme modülü görüntülerini seçin. Dosya üzerinde .template.js IoT Edge çözümünüzü içeren depodaki deployment.template.js dosyanın yolunu belirtin. Varsayılan platform Modülleriniz için hedeflenen IoT Edge cihazınıza göre uygun işletim sistemini seçin. Bu görev ve parametreleri hakkında daha fazla bilgi için bkz. Azure IoT Edge Task.

İpucu
Her görev eklendikten sonra, düzenleyici eklenen satırları otomatik olarak vurgulayacaktır. Yanlışlıkla yazılmasını engellemek için satırların seçimini kaldırın ve ek görevler eklemeden önce bir sonraki göreviniz için yeni bir alan sağlayın.
Aşağıdaki parametrelere sahip üç görev daha eklemek için bu işlemi tekrarlayın:
Görev: Azure IoT Edge
Parametre Açıklama Eylem Gönderim modülü görüntülerini 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. Dosya üzerinde .template.js IoT Edge çözümünüzü içeren depodaki deployment.template.js dosyanın yolunu belirtin. Varsayılan platform Modülleriniz için hedeflenen IoT Edge cihazınıza göre 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ı Kopyala
Parametre Açıklama Kaynak Klasör Kaynak klasörden kopyalama. Empty, repo kökündedir. Dosyalar, repoda yoksa değişkenleri kullanın. Örnek: $(agent.builddirectory).İçindekiler İki satır ekleyin: deployment.template.jsonve**/module.json.Hedef Klasör değişkenlerini $(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 derlemelerini Artifacts
Parametre Açıklama Yayımlama yolu değişkenlerini $(Build.ArtifactStagingDirectory)belirtin. Açıklama hakkında bilgi edinmek için bkz. Değişken oluşturma.Yapıt adı Varsayılan adı belirtin: dropYapıt yayımlama konumu Varsayılan konumu kullanın: Azure PipelinesBu görev ve parametreleri hakkında daha fazla bilgi için bkz. Derleme yapıtlarını yayımlama görevi.
Sağ üstte yer alan Kaydet ve çalıştır açılan listesinden Kaydet'i seçin.
YaML işlem hattınız için sürekli tümleştirme tetikleyicisi varsayılan olarak etkindir. Bu ayarları düzenlemek isterseniz işlem hattınızı seçin ve sağ üst kısmında Düzenle'ye tıklayın. Sağ üstte yer alan Ç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ı adının altında etkin olarak gösterir. Tetikleyicinin ayrıntılarını görmek isterseniz YAML sürekli tümleştirme tetikleyicilerini buradan geçersiz kıl kutusunu işaretleyin.

Yayın işlem hattını oluşturmak için sonraki bölüme devam edin.
Sürekli dağıtım için bir yayın işlem hattı oluşturma
Bu bölümde, derleme işlem hatlarınız yapıtlar olduğunda otomatik olarak çalışacak şekilde yapılandırılmış bir yayın işlem hattı oluşturun ve Azure Pipelines dağıtım günlüklerini gösterir.
Yeni bir işlem hattı oluşturun ve yeni bir aşama ekleyin:
İşlem hatları altındaki yayınlar sekmesinde + Yeni işlem hattı' nı seçin. Ya da yayın işlem hatlarınız zaten varsa + Yeni düğmesini seçin ve + Yeni yayın işlem hattı' nı seçin.

Bir şablon seçmek isteyip istemediğiniz sorulduğunda boş bir işle başlatmayı seçin.

Yeni yayın ardışık düzeni, 1. aşama adlı bir aşama ile başlatılır. 1. aşamayı dev olarak yeniden adlandırın ve geliştirme ortamınız için bir sürekli dağıtım işlem hattı olarak değerlendirin. Genellikle, sürekli dağıtım işlem hatları dev, hazırlık ve Üretim dahil olmak üzere birden çok aşamaya sahiptir. Farklı adlar kullanabilir ve DevOps uygulamanıza göre daha fazla bilgi oluşturabilirsiniz. Yeniden adlandırıldıktan sonra aşama ayrıntıları penceresini kapatın.
Ayrıca, en üstteki "yeni yayın işlem hattı" metnini seçerek yayın işlem hattınızı yeniden adlandırabilirsiniz.
Yayını derleme işlem hattı tarafından yayınlanan yapı yapıtlarına bağlayın. Yapıt alanında Ekle ' ye tıklayın.

Yapıt Ekle sayfasında, kaynak 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ı daha açıklayıcı bir şekilde 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 geçiş seçeneğini belirleyin. Şimdi yeni bir derleme kullanılabilir olduğunda yeni bir yayın oluşturulacaktır.

Geliştirme aşaması bir iş ve sıfır görev ile ö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ı qa olarak değiştirin. Aracı işiyle ilgili ayrıntıları yapılandırabilirsiniz, ancak seçilen Aracı havuzunda herhangi bir Aracı belirtimini kullanabilmeniz için Dağıtım görevi platforma duyarlıdır.

QA işinde, + iki görev eklemek için artı işaretini () seçin. Azure IoT Edge 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 Görünen ad, eylem alanı değiştiğinde otomatik olarak güncelleştirilir. Eylem Generate deployment manifestöğesini seçin.Dosya üzerinde .template.js Yolu belirtin: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Yol, derleme ardışık düzeninde yayımlanır.Varsayılan platform Modülleriniz için hedeflenen IoT Edge cihazınıza göre uygun işletim sistemini seçin. Çıkış yolu Yolu yerleştirin $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Bu yol, son IoT Edge dağıtım bildirimi dosyasıdır.Bu yapılandırma, dosyadaki modül görüntüsü URL 'Lerinin değiştirilmesini sağlar
deployment.template.json. Dağıtım oluşturma bildirimi Ayrıca değişkenlerin dosyada tanımladığınız tam değerle değiştirilmesini de sağlardeployment.template.json. VS/VS Code 'de gerçek değeri bir dosyada belirtmektir.env. Azure Pipelines, serbest bırakma Işlem hattı değişkenleri sekmesinde değeri ayarlarsınız. Değişkenler sekmesine geçin ve adı ve değeri aşağıdaki şekilde yapılandırın:- ACR_ADDRESS: Azure Container Registry oturum açma sunucunuzun değeri. 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ı.
Projenizde başka değişkenlere sahipseniz, bu sekmede adı ve değeri belirtebilirsiniz. Dağıtım oluşturma bildirimi yalnızca Flavor içindeki değişkenleri tanıyabilir
${VARIABLE}. Bu türü dosyalarınızda kullandığınızdan emin olun*.template.json."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
İkinci Azure IoT Edge görevi seçin ve aşağıdaki değerlerle yapılandırın:
Parametre Açıklama Görünen ad Görünen ad, eylem alanı değiştiğinde otomatik olarak güncelleştirilir. Eylem Deploy to IoT Edge devicesöğesini seçin.Dağıtım dosyası Yolu yerleştirin $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Bu yol, dosya IoT Edge dağıtım bildirimi 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çin 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ıyorsanız IoT Edge CIHAZ kimliğini girin. Birden çok cihaza dağıtıyorsanız, cihaz hedefi koşulunu belirtin. Hedef koşul, IoT Hub bir IoT Edge cihazları kümesiyle eşleşecek bir filtredir. Cihaz etiketlerini koşul olarak kullanmak istiyorsanız, ilgili cihaz etiketlerinizi IoT Hub Device ikizi ile güncelleştirmeniz gerekir. Gelişmiş ayarlarda IoT Edge DAĞıTıM kimliğini ve Dağıtım önceliğini IoT Edge 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ğı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 sürüm adını IoT Edge dağıtım KIMLIĞINIZLE eşler.Göreviniz, genel buluta görünmeyen özel bir Docker güvenilen kayıt defterinde bulunan bir görüntünün kullanımını içeriyorsa, SKIP_MODULE_IMAGE_VALIDATION ortam değişkenini
truegörüntü doğrulamayı atlayacak şekilde ayarlayabilirsiniz.
Yeni sürüm ardışık düzeninde yaptığınız değişiklikleri kaydetmek için Kaydet ' i seçin. Menüden işlem hattı sekmesini seçerek işlem hattı görünümüne dönün.
Derleme ve yayın işlem hatları ile IoT Edge CI/CD 'yi doğrulama
Bir yapı işini tetiklemek için, kaynak kodu deposuna bir kayıt gönderebilir veya el ile tetikleyebilirsiniz. Bu bölümde, onun çalıştığını test etmek için CI/CD işlem hattını el ile tetiklersiniz. Sonra dağıtımın başarılı olduğunu doğrulayın.
Sol bölme menüsünde, işlem hatları ' nı seçin ve bu makalenin başlangıcında oluşturduğunuz derleme işlem hattını açın.
Yapı işlem hattınızda derleme işini, sağ üst köşedeki işlem hattını Çalıştır düğmesini seçerek tetikleyebilirsiniz.

Çalıştırma işlem hattı ayarlarını gözden geçirin. Sonra Çalıştır' ı seçin.

Çalıştırmanın ilerlemesini izlemek için Aracı işi 1 ' i seçin. İşi seçerek iş çıkışı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.

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

İşlem hatlarınız başarısız olursa 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, bu görev için günlüklere bakın. Günlükleri yapılandırma ve kullanma hakkında ayrıntılı yönergeler için bkz. işlem hattı sorunlarını tanılamak için günlükleri gözden geçirme.
Sonraki adımlar
- IoT Edge DevOps için Azure DevOps Starter'daki IoT Edge
- Tek IoT Edge veya büyük ölçekte IoT Edge dağıtımları anlama içinde dağıtımları anlama
- Dağıtım oluşturma, güncelleştirme veya silme adımlarını büyük ölçekteki modülleri dağıtma ve izleme IoT Edge adımlarını izleyin.