Bicep ve Azure CLI ile kaynakları dağıtma

Bu makalede, kaynaklarınızı Azure'a dağıtmak için Azure CLI'yi Bicep dosyalarıyla birlikte kullanma açıklanmıştır. Azure çözümlerinizi dağıtma ve yönetme kavramlarını biliyorsanız bkz. Bicep'e genel bakış.

Önkoşullar

Dağıtmak için bir Bicep dosyası gerekir. Dosya yerel olmalı.

Azure CLI ve Azure'a bağlı olmak gerekir:

Azure CLI örnekleri kabuk için bash yazılır. Bu örneği komut Windows PowerShell komut isteminde çalıştırmak için betiğin öğelerini değiştirebilirsiniz.

Azure CLI yüklüyse, Azure CLI'sini Azure Cloud Shell. Daha fazla bilgi için bkz. Azure Cloud Shell'dan Bicep dosyalarını dağıtma.

Dağıtım kapsamı

Dağıtımınızı bir kaynak grubuna, aboneliğe, yönetim grubuna veya kiracıya hedefleyebilirsiniz. Dağıtımın kapsamına bağlı olarak farklı komutlar kullanırsınız.

Her kapsam için Bicep dosyasını dağıtan kullanıcının kaynak oluşturmak için gerekli izinlere sahip olması gerekir.

Yerel Bicep dosyasını dağıtma

Bicep dosyasını yerel makineden veya harici olarak depolanan bir dosyadan dağıtabilirsiniz. Bu bölümde yerel bir Bicep dosyasının dağıtımı açık almaktadır.

Mevcut olmayan bir kaynak grubuna dağıtıyorsanız kaynak grubunu oluşturun. Kaynak grubunun adı yalnızca alfasayısal karakterler, nokta, alt çizgi, kısa çizgi ve parantez içerebilir. En fazla 90 karakter olabilir. Ad, noktayla bite bir süreyle sona erer.

az group create --name ExampleGroup --location "Central US"

Yerel bir Bicep dosyası dağıtmak için dağıtım --template-file komutunda parametresini kullanın. Aşağıdaki örnekte parametre değerinin nasıl ayarlandır olduğu da gösterir.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file <path-to-bicep> \
  --parameters storageAccountType=Standard_GRS

Dağıtımın tamamlanması birkaç dakika sürebilir. Bu tamamlansa, sonucu içeren bir ileti alırsınız:

"provisioningState": "Succeeded",

Remote Bicep dosyasını dağıtma

Şu anda Azure CLI, uzak Bicep dosyaları dağıtmayı desteklemez. Bicep dosyasını bir JSON şablonuna derlemek ve ardından JSON dosyasını uzak konuma yüklemek için Bicep CLI'yi kullanın.

Parametreler

Parametre değerlerini geçmek için satır içi parametreleri veya parametre dosyasını kullanabilirsiniz.

Satır içi parametreler

Satır içi parametreleri geçmek için içinde değerleri parameters girin. Örneğin, bash kabuğunda bir dize ve diziyi Bicep dosyasına geçmek için şunları kullanın:

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters exampleString='inline string' exampleArray='("value1", "value2")'

Windows Komut İstemi (CMD) veya PowerShell ile Azure CLI kullanıyorsanız, diziyi şu biçimde geçişin: exampleArray="['value1','value2']" .

Ayrıca dosyanın içeriğini de almak ve bu içeriği satır içi parametre olarak sağlamaktır.

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters exampleString=@stringContent.txt exampleArray=@arrayContent.json

Bir dosyadan parametre değeri almak, yapılandırma değerleri sağlamanız gereken zaman yararlı olur. Örneğin, bir Linux sanal makinesi için cloud-init değerleri sebilirsiniz.

arrayContent.json biçimi şöyledir:

[
    "value1",
    "value2"
]

Bir nesneyi (örneğin, etiketleri ayarlamak için) geçmek için JSON kullanın. Örneğin, Bicep dosyanız aşağıdakine benzer bir parametre içerebilir:

    "resourceTags": {
      "type": "object",
      "defaultValue": {
        "Cost Center": "IT Department"
      }
    }

Bu durumda, aşağıdaki Bash betiğinde gösterildiği gibi parametresini ayarlamak için bir JSON dizesi geçsiniz:

tags='{"Owner":"Contoso","Cost Center":"2345-324"}'
az deployment group create --name addstorage  --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags="$tags"

Nesnesine geçmek istediğiniz JSON'un etrafında çift tırnak kullanın.

Parametre değerlerini içeren bir değişken kullanabilirsiniz. Bash'te değişkeni tüm parametre değerlerine ayarlayın ve dağıtım komutuna ekleyin.

params="prefix=start suffix=end"

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters $params

Ancak Azure CLI'yı Windows Komut İstemi (CMD) veya PowerShell ile kullanıyorsanız değişkeni bir JSON dizesine ayarlayın. Tırnak işaretlerini kaçış olarak alın: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }' .

Parametre dosyaları

Parametreleri betiğinize satır içi değerler olarak geçirmek yerine parametre değerlerini içeren bir JSON dosyası kullanmak daha kolayınıza gelebilir. Parametre dosyası yerel bir dosya olmalıdır. Dış parametre dosyaları Azure CLI ile desteklenmiyor. Bicep dosyası JSON parametre dosyalarını kullanır.

Parametre dosyası hakkında daha fazla bilgi için bkz. Resource Manager parametre dosyası oluşturma.

Yerel parametre dosyasını geçmek için, @ storage.parameters.json adlı yerel bir dosya belirtmek için kullanın.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.bicep \
  --parameters @storage.parameters.json

Değişiklikleri önizleme

Bicep dosyanızı dağıtmadan önce, Bicep dosyasının ortamınıza yapacakları değişikliklerin önizlemesini görebilirsiniz. Bicep dosyasının beklediğiniz değişiklikleri yaptığını doğrulamak için what-if dosyasını kullanın. What-if ayrıca Bicep dosyasını hatalar için doğrular.

Şablon özellikleri dağıtma

Şu anda Azure CLI, Bicep dosyaları sağlayarak şablon özellikleri oluşturmayı desteklemez. Ancak, şablon özellikleri dağıtmak için Microsoft.Resources/templateSpecs kaynağıyla bir Bicep dosyası oluşturabilirsiniz. Şablon özellikleri oluşturma örneği, Bicep dosyasında şablon özellikleri oluşturma hakkında bilgi sağlar. Ayrıca Bicep CLI'yi kullanarak Bicep dosyanızı JSON'a oluşturabilir ve ardından JSON şablonuyla şablon özellikleri oluşturabilirsiniz.

Dağıtım adı

Bicep dosyası dağıtırken dağıtıma bir ad veebilirsiniz. Bu ad, dağıtımı dağıtım geçmişinden a yardımcı olabilir. Dağıtım için bir ad sağlasanız bile Bicep dosyasının adı kullanılır. Örneğin, adlı bir Bicep dosyası dağıtırsanız ve dağıtım adı main.bicep belirtmezseniz, dağıtım olarak main adlandırılmıştır.

Bir dağıtımı her çalıştırarak kaynak grubunun dağıtım geçmişine dağıtım adıyla bir giriş eklenir. Başka bir dağıtım çalıştırarak aynı adı kullanırsanız, önceki giriş geçerli dağıtımla değiştirilir. Dağıtım geçmişinde benzersiz girdileri korumak için her dağıtıma benzersiz bir ad girin.

Benzersiz bir ad oluşturmak için rastgele bir sayı at rastgele bir sayı atarak.

deploymentName='ExampleDeployment'$RANDOM

Veya bir tarih değeri ekleyin.

deploymentName='ExampleDeployment'$(date +"%d-%b-%Y")

Aynı kaynak grubuna aynı dağıtım adıyla eşzamanlı dağıtımlar çalıştırıyorsanız, yalnızca son dağıtım tamamlanır. Aynı adla bitmiş tüm dağıtımlar son dağıtımla değiştirilir. Örneğin, adlı bir depolama hesabı dağıtan adlı bir dağıtım çalıştırıyorsanız ve aynı zamanda adlı bir depolama hesabı dağıtan adlı başka bir dağıtım çalıştırıyorsanız, yalnızca bir depolama newStorage storage1 hesabı newStorage storage2 dağıtırsınız. Sonuçta elde edilen depolama hesabı olarak storage2 adlandırılmıştır.

Ancak adlı bir depolama hesabı dağıtan adlı bir dağıtım çalıştırıyorsanız ve tamamlandıktan hemen sonra adlı bir depolama hesabı dağıtan adlı başka bir dağıtım çalıştırıyorsanız iki depolama newStorage storage1 hesabınız newStorage storage2 olur. Biri , storage1 diğeri ise olarak adlandırılmış. storage2 Ancak dağıtım geçmişinde yalnızca bir girişiniz vardır.

Her dağıtım için benzersiz bir ad belirttiğinizde, bunları çakışma olmadan eşzamanlı olarak çalıştırabilirsiniz. adlı bir depolama hesabı dağıtan adlı bir dağıtım çalıştırıyorsanız ve aynı zamanda adlı bir depolama hesabı dağıtan adlı başka bir dağıtım çalıştırıyorsanız, dağıtım geçmişinde iki depolama hesabınız ve iki newStorage1 storage1 newStorage2 storage2 girdiniz olur.

Eşzamanlı dağıtımlarla çakışmaları önlemek ve dağıtım geçmişinde benzersiz girişler sağlamak için her dağıtıma benzersiz bir ad girin.

Sonraki adımlar