Bicep kodunu dağıtım iş akışından yayımlama

Tamamlandı

Bir şablon belirtimi veya Bicep modülü için yayımlama işlemini otomatikleştirdiğinizde, normalde kendi başınıza yaptığınız her şeyin otomatikleştirildiğinden ve iş akışı içinde çalıştırıldığından emin olmanız gerekir. Bu ünitede, bir dağıtım iş akışından şablon belirtimlerini ve Bicep modüllerini yayımladığınızda daha önce öğrendiğiniz bazı ilkeleri uygulamayı öğreneceksiniz.

Şablon özellikleri ve modülleri

Bicep, kodunuzu kolayca yeniden kullanmanıza olanak tanır. Bicep kodunuzu dağıtımlar arasında yeniden kullanmaya yönelik iki yaygın yaklaşım şunlardır:

  • Eksiksiz çözümlerin dağıtımı için en iyi duruma getirilmiş şablon belirtimleri. Örneğin, şirketinizin belirtimlerine göre eksiksiz bir sanal makine dağıtmak için güvenlikle sağlamlaştırılmış bir kaynak kümesi tanımlamış olduğunuzu varsayalım. Bu kodu şablon belirtimi olarak yayımlayabilirsiniz. İş arkadaşlarınız, Azure portalından bile eksiksiz bir sanal makine dağıtmak için şablon belirtiminizi kullanabilir.
  • Modüller, diğer dağıtımların bileşenleri olacak şekilde tasarlanmıştır. Örneğin, depolama hesabı oluşturan bir Bicep dosyası oluşturduğunuzu varsayalım. Bicep dosyasını bir kayıt defterinde yayımlayıp kuruluşunuzun dağıtımları genelinde modül olarak kullanabilmeniz için büyük olasılıkla diğer birçok dağıtımda depolama hesaplarına ihtiyacınız vardır.

Şablon belirtimleri ile Bicep modülleri arasında karar verirken iyi bir temel kural şudur: Şablon kuruluşunuzda olduğu gibi dağıtılacaksa, şablon özellikleri büyük olasılıkla uygun olacaktır. Ancak bu şablonu birden çok üst şablon içinde yeniden kullanma olasılığınız varsa, Bicep modülleri gereksinimlerinize daha iyi hizmet edebilir.

bir iş akışında yeniden kullanılabilir kodu doğrulama

Normal Bicep dağıtımlarından farklı olarak, bir şablon belirtimi veya modül oluşturduğunuzda kaynakları doğrudan Azure'a dağıtmazsınız. Bunun yerine, şablon belirtimini veya modülünü yayımlarsınız. Daha sonra şablon belirtimini veya modülünü başka bir dağıtımda kullanabilirsiniz. Bu dağıtım, tanımladığınız kaynakları dağıtır. Bu fark nedeniyle, şablon belirtimlerinizi ve Bicep modüllerinizi doğrulama ve test etmenin yolları, normal Bicep dağıtımlarında kullandığınız işlemden farklı olabilir.

Bicep kodunuzu lint etmek iyi bir uygulamadır. Linter, el değmemiş sorunları algılar ve önerilen uygulamaları takip etmediğinizde sizi uyarır.

Lint özelliğinin ötesinde, denetim öncesi doğrulamayı kullanarak şablon belirtimlerinizi ve modüllerinizi test etmeyi düşünebilirsiniz. Hatta şablon belirtimlerinizi ve modüllerinizi Azure'a dağıtmayı ve oluşturdukları kaynakların beklediğiniz gibi davrandığını test etmeyi düşünebilirsiniz. Ancak, iki nedenden dolayı bu tür testleri bir dağıtım iş akışından çalıştırmak zor olabilir:

  • Denetim öncesi doğrulama ve dağıtımlar için kaynakları dağıtmak için bir Azure ortamı gerekir. Modüllerinizi dağıtmak ve test etmek için kullanmak üzere ayrılmış bir Azure aboneliği veya kaynak grubu bulundurmanız gerekebilir.
  • Birçok şablon belirtimi ve modülü, bir parametre kümesi belirtmenizi gerektirir. Dağıtıldıklarında kullanmak üzere şablon belirtimleriniz veya modülleriniz için bir test parametreleri kümesi oluşturmanız gerekebilir.

Şablon belirtimlerinizi ve modüllerinizi dağıtan ve test eden iş akışı adımlarını ekleyip eklemeyeceksiniz. Bu Microsoft Learn eğitim modülünde Bicep kodunu lint ediyoruz ancak diğer test biçimlerini içermiyoruz. Şablon özelliklerinizi ve modüllerinizi test etmek istiyorsanız bunları Azure'a nasıl dağıtabileceğinizi göz önünde bulundurun. Ayrıca kaynakları dağıtmak için ayrılmış abonelikler mi yoksa kaynak grupları mı kullanacağınızı da göz önünde bulundurun.

Bahşiş

Bicep dosyalarınızı otomatik bir iş akışında test etme hakkında daha fazla bilgi için GitHub Actions'ı kullanarak Bicep kodunuzu test etme sayfasını gözden geçirmenizi öneririz.

Kimlik doğrulaması ve yetkilendirme

Şablon belirtimlerini Azure'a kendiniz yayımladığınızda, Microsoft Entra kullanıcınıza şablon belirtimi kaynağını içeren kaynak grubuna erişim izni verilmesi gerekir. Benzer şekilde, bir Bicep modülünü bir kayıt defterinde yayımladığınızda, Microsoft Entra kullanıcınızın kuruluşunuzun Bicep modülleri için kullandığı Azure Container Registry örneğine yazma iznine sahip olması gerekir.

Otomatik dağıtım iş akışıyla çalışırken, aynı ilkeler geçerlidir. Ancak, dağıtımı çalıştıran kişi siz olmadığınızdan, iş akışınızın kimliğine şablon belirtimini yayımlamak için kaynak grubuna veya modülleri yayımlamak için kapsayıcı kayıt defterine uygun erişimin verildiğinden emin olmanız gerekir.

Bahşiş

Bir modülü kayıt defterinde yayımladığınızda, dağıtımı çalıştıran iş yükü kimliğinin büyük olasılıkla çok fazla izne ihtiyacı yoktur. Kayıt defteriniz Microsoft Entra yetkilendirmesini kullandığında, iş yükü kimliği yalnızca kayıt defteri üzerinde AcrPush iznine ihtiyaç duyar.

En düşük ayrıcalık güvenlik ilkesini kullanmayı göz önünde bulundurun. İş akışının kimliğini bir kaynak grubuna veya aboneliğe değil yalnızca kapsayıcı kayıt defterine erişimle sağlayın.

İş akışından şablon belirtimlerini ve modüllerini yayımlama

Azure CLI kullanarak kendi bilgisayarınızdan bir şablon belirtimi yayımladığınızda, aşağıdaki gibi bir komut kullanırsınız:

az ts create \
  --name StorageWithoutSAS \
  --location westus3 \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1 \
  --template-file main.bicep

Bu Azure CLI komutunu GitHub Actions adımına dönüştürebilirsiniz:

- name: Publish template spec
  uses: azure/cli@v1
  with:
    inlineScript: |
      az ts create \
        --name StorageWithoutSAS \
        --location westus3 \
        --display-name "Storage account with SAS disabled" \
        --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
        --version 1 \
        --template-file main.bicep

İş akışı, kendi kullanacağınız şablon belirtimini yayımlamak için aynı işlemi kullanır.

Benzer şekilde, Azure CLI kullanarak kendi bilgisayarınızdan bir Bicep modülü yayımladığınızda, aşağıdakine benzer bir komut kullanırsınız:

az bicep publish \
   --file module.bicep \
   --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Bu Azure CLI komutunu bir GitHub Actions adımına da dönüştürebilirsiniz:

- name: Publish Bicep module
  uses: azure/cli@v1
  with:
    inlineScript: |
      az bicep publish \
        --file module.bicep \
        --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Bahşiş

Bu örnekte, Bicep kayıt defterinin ana bilgisayar adı (toycompany.azurecr.io) iş akışı adım tanımına eklenir. Bu iyi bir uygulama değil. Bunun gibi yapılandırma ayarlarını yapmak için ortam değişkenlerini kullanabilirsiniz. Bunun nasıl çalıştığını bu Microsoft Learn eğitim modülünün ilerleyen bölümlerinde göreceksiniz.

Kısa bir süre sonra, bu ünitede açıklanan adımları kullanarak bir iş akışından şablon belirtimini nasıl yayımlayabileceğinizi göreceksiniz.

Modül veya şablon belirtimi kullanma

Önceki Microsoft Learn eğitim modüllerinde, şablon belirtimlerinde tanımlanan kaynakları dağıtmayı ve kayıt defterlerinde depolanan Bicep modüllerini kullanmayı öğrendiniz. Şablon belirtimlerinizi ve modüllerinizi el ile veya dağıtım iş akışından yayımlasanız da bunları aynı şekilde kullanır ve dağıtırsınız.

Örneğin, Azure CLI komutunu veya Azure PowerShell ile cmdlet'ini az deployment group create kullanarak bir kaynak grubuna New-AzResourceGroupDeployment şablon belirtimi veya Bicep dosyası dağıtırsınız.