Azure CLI ile Bicep dosyalarını dağıtma
Bu makalede, kaynaklarınızı Azure'a dağıtmak için Bicep dosyalarıyla Azure CLI'nin nasıl kullanılacağı açıklanmaktadır. Azure çözümlerinizi dağıtma ve yönetme hakkında bilginiz yoksa bkz . Bicep nedir?.
Önkoşullar
Dağıtmak için bir Bicep dosyası gerekir ve dosyanın yerel olması gerekir. Ayrıca Azure CLI'ya ve Azure'a bağlı olmanız gerekir:
- Yerel bilgisayarınıza Azure CLI komutlarını yükleyin. Bicep dosyalarını dağıtmak için Azure CLI sürüm 2.20.0 veya üzeri gerekir.
-
Azure'a bağlanmak için kullanın
az login
. Birden çok Azure aboneliğiniz varsa komutunu da çalıştırmanızaz account set
gerekebilir.
Azure CLI örnekleri kabuk için bash
yazılır. Bu örneği Windows PowerShell veya Komut İstemi'nde (cmd) çalıştırmak için betiğin öğelerini değiştirmeniz gerekebilir.
Azure CLI yüklü değilse Azure Cloud Shell'i kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Cloud Shell ile Bicep dosyalarını dağıtma.
Gerekli izinler
Bicep dosyasını veya ARM şablonunu dağıtmak için dağıttığınız kaynaklara yazma erişimine ve Microsoft.Resources/deployments kaynak türündeki tüm işlemler için erişime sahip olmanız gerekir. Örneğin, bir sanal makine dağıtmak için ve Microsoft.Resources/deployments/*
izinlerine ihtiyacınız vardırMicrosoft.Compute/virtualMachines/write
. What-if işlemi aynı izin gereksinimlerine sahiptir.
Rol ve izinlerin listesi için bkz. Azure yerleşik rolleri.
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 ve Bicep dosyasını dağıtan kullanıcının her kapsam için kaynak oluşturmak için gerekli izinlere sahip olması gerekir.
Bir kaynak grubuna dağıtmak için kullanın
az deployment group create
:az deployment group create --resource-group <resource-group-name> --template-file <path-to-bicep>
Bir aboneliğe dağıtmak için kullanın
az deployment sub create
:az deployment sub create --location <location> --template-file <path-to-bicep>
Abonelik düzeyi dağıtımlar hakkında daha fazla bilgi için bkz . Kaynakları aboneliğe dağıtmak için Bicep'i kullanma.
Bir yönetim grubuna dağıtmak için kullanın
az deployment mg create
:az deployment mg create --location <location> --template-file <path-to-bicep>
Yönetim grubu düzeyinde dağıtımlar hakkında daha fazla bilgi için bkz . Kaynakları yönetim grubuna dağıtmak için Bicep'i kullanma.
Bir kiracıya dağıtmak için kullanın
az deployment tenant create
:az deployment tenant create --location <location> --template-file <path-to-bicep>
Kiracı düzeyinde dağıtımlar hakkında daha fazla bilgi için bkz . Kaynakları kiracıya dağıtmak için Bicep'i kullanma.
Yerel Bicep dosyasını dağıtma
Yerel makinenizden veya dış makinenizden bir Bicep dosyası dağıtabilirsiniz. Bu bölümde yerel bicep dosyasının nasıl dağıtılacağı açıklanmaktadı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 ve noktayla bitemez.
az group create --name ExampleGroup --location "Central US"
Yerel bicep dosyasını dağıtmak için dağıtım komutundaki anahtarı kullanın --template-file
. Aşağıdaki örnekte parametre değerinin nasıl ayarlanacağı da gösterilmektedir:
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. Tamamlandığında, aşağıdaki sonucu içeren bir ileti görürsünüz:
"provisioningState": "Succeeded",
Uzak Bicep dosyasını dağıtma
Azure CLI şu anda uzak Bicep dosyalarını dağıtmayı desteklemez. Bicep CLI'yi kullanarak Bicep dosyasını bir JSON şablonuna derleyebilir ve ardından JSON dosyasını uzak bir konuma yükleyebilirsiniz. Daha fazla bilgi için bkz . Uzak şablonu dağıtma.
Parametreler
Parametre değerlerini geçirmek için satır içi parametreleri veya parametre dosyasını kullanabilirsiniz. Parametre dosyası bir Bicep parametre dosyası veya JSON parametre dosyası olabilir.
Satır içi parametreler
Satır içi parametreleri geçirmek için içindeki parameters
değerleri sağlayın. Örneğin, bash kabuğundaki bicep dosyasına bir dize ve dizi geçirmek için şunu kullanın:
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters exampleString='inline string' exampleArray='["value1", "value2"]'
Azure CLI'yı cmd veya PowerShell ile kullanıyorsanız diziyi şu biçimde geçirin: exampleArray="['value1','value2']"
.
Bu içeriği satır içi parametre olarak sağlamak için dosyanın içeriğini de alabilirsiniz. Dosya adının başına ile yazın @:
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 gerektiğinde yararlı olur. Örneğin, Linux sanal makinesi için cloud-init değerleri sağlayabilirsiniz.
arrayContent.json biçimi:
[
"value1",
"value2"
]
Bir nesneyi geçirmek için JSON kullanın (örneğin, etiketleri ayarlarken). Bicep dosyanız aşağıdakine benzer bir parametre içerebilir:
"resourceTags": {
"type": "object",
"defaultValue": {
"Cost Center": "IT Department"
}
}
Aşağıdaki Bash betiğinde gösterildiği gibi, parametresini ayarlamak için bir JSON dizesi geçirebilirsiniz. Nesneye geçirmek istediğiniz JSON çevresinde çift tırnak işareti kullanın:
tags='{"Owner":"Contoso","Cost Center":"2345-324"}'
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags="$tags"
Azure CLI'yi cmd veya PowerShell ile kullanıyorsanız, nesneyi aşağıdaki biçimde geçirin:
$tags="{'Owner':'Contoso','Cost Center':'2345-324'}"
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags=$tags
Parametre değerlerini içeren bir değişken kullanabilirsiniz. Değişkenini Bash betiğinizdeki 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'yi cmd veya PowerShell ile kullanıyorsanız değişkenini bir JSON dizesi olarak ayarlayın. Tırnak işaretlerine kaçış: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }'
.
Parametrelerin değerlendirilmesi sıralı bir sırayı izler; başka bir deyişle, bir değer birden çok kez atanırsa, yalnızca son atanan değer kullanılır. Parametreleri düzgün atamak için parametre dosyanızı başlangıçta sağlamanız ve ardından belirli parametreleri seçmeli olarak geçersiz kılmak için KEY=VALUE söz dizimini kullanmanız önerilir. Parametre dosyası sağlarken bu bağımsız değişkeni yalnızca bir .bicepparam
kez kullanabilirsiniz.
Bicep parametre dosyaları
Parametreleri betiğinizde satır içi değerler olarak geçirmek yerine, bir Bicep parametre dosyası veya parametre değerlerini içeren bir JSON parametre dosyası kullanmayı daha kolay bulabilirsiniz. Azure CLI dış parametre dosyalarını desteklemediğinden parametre dosyası yerel bir dosya olmalıdır. Parametre dosyaları hakkında daha fazla bilgi için bkz . Bicep dağıtımı için parametre dosyaları oluşturma.
Bicep parametre dosyasını kullanarak Azure CLI sürüm 2.53.0 veya üzeri ve Bicep CLI sürüm 0.22.X veya üzeri bir Bicep dosyası dağıtabilirsiniz.
using
Bicep parametreleri dosyasındaki deyimiyle, anahtar için --parameters
bir Bicep parametre dosyası belirtirken anahtarı sağlamanıza --template-file
gerek yoktur. Anahtarın dahil olması --template-file
".bicepparam dosyasıyla yalnızca bir .bicep şablonuna izin verilir" hatası alır.
Aşağıdaki örnekte storage.bicepparam adlı bir parametre dosyası gösterilmektedir. Dosya, komutun çalıştığı dizindedir:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
JSON parametre dosyaları
Aşağıdaki örnekte storage.parameters.json adlı bir parametre dosyası gösterilmektedir. Dosya, komutun çalıştığı dizindedir:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.bicep \
--parameters '@storage.parameters.json'
Aynı dağıtım işleminde satır içi parametreleri ve konum parametreleri dosyasını kullanabilirsiniz. Daha fazla bilgi için bkz . Parametre önceliği.
Önceki değişiklikler
Bicep dosyanızı dağıtmadan önce, Bicep dosyasının ortamınızda yapacağı değişikliklerin önizlemesini görebilirsiniz. Durum işlemini kullanarak Bicep dosyasının beklediğiniz değişiklikleri yaptığını doğrulayın. Durum, Bicep dosyasını hatalarla ilgili olarak da doğrular.
Şablon belirtimlerini dağıtma
Şu anda Azure CLI, şablon belirtimleri oluşturmaya yardımcı olmak için Bicep dosyaları sağlamaz. Ancak, şablon belirtimini dağıtmak için Microsoft.Resources/templateSpecs kaynağıyla bir Bicep dosyası oluşturabilirsiniz. Şablon oluşturma belirtimi örneği , Bicep dosyasında şablon belirtiminin nasıl oluşturulacağını gösterir. Ayrıca Bicep CLI'yi ve ardından bir JSON şablonunu kullanarak bir şablon belirtimi oluşturarak Bicep dosyanızı JSON'a oluşturabilirsiniz.
Dağıtım adı
Bicep dosyasını dağıtırken dağıtıma bir ad verebilirsiniz. Bu ad, dağıtımı dağıtım geçmişinden almanıza yardımcı olabilir. Dağıtım için bir ad sağlamazsanız, adı Bicep dosyasının adı olur. Örneğin, main.bicep adlı bir Bicep dosyası dağıtırsanız ve dağıtım adı belirtmezseniz, dağıtım olarak adlandırılır main
.
Bir dağıtımı her çalıştırdığınızda, kaynak grubunun dağıtım geçmişine dağıtım adıyla bir giriş eklenir. Başka bir dağıtım çalıştırır ve aynı adı verirseniz, önceki girdi geçerli dağıtımla değiştirilir. Dağıtım geçmişinde benzersiz girdiler tutmak istiyorsanız, her dağıtıma benzersiz bir ad verin.
Benzersiz bir ad oluşturmak için rastgele bir sayı atayabilirsiniz:
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ırsanız, yalnızca son dağıtım tamamlanır. Aynı ada sahip ve henüz tamamlanmamış tüm dağıtımlar son dağıtımla değiştirilir. Örneğin, adlı storage1
bir depolama hesabı dağıtan adlı newStorage
bir dağıtım çalıştırırsanız ve aynı anda adlı storage2
bir depolama hesabını dağıtan adlı newStorage
başka bir dağıtım çalıştırırsanız, yalnızca bir depolama hesabı dağıtırsınız. Sonuçta elde edilen depolama hesabı olarak adlandırılır storage2
.
Ancak adlı newStorage
bir depolama hesabı storage1
dağıtan adlı bir dağıtım çalıştırırsanız ve ilk dağıtım tamamlandıktan sonra adlı bir depolama hesabını dağıtan adlı newStorage
storage2
başka bir dağıtımı hemen çalıştırırsanız iki depolama hesabınız olur. Biri olarak adlandırılır storage1
, diğeri ise olarak adlandırılır storage2
. Ancak dağıtım geçmişinde yalnızca bir girdiniz vardır.
Her dağıtım için benzersiz bir ad belirttiğinizde, bunları çakışma olmadan eşzamanlı olarak çalıştırabilirsiniz. adlı newStorage1
bir depolama hesabı dağıtan ve aynı anda adlı storage1
bir depolama hesabı storage2
dağıtan adlı newStorage2
başka bir dağıtımı çalıştıran bir dağıtım çalıştırırsanız, dağıtım geçmişinde iki depolama hesabınız ve iki girdiniz vardır.
Eşzamanlı dağıtımlarla çakışmaları önlemek ve dağıtım geçmişinde benzersiz girdiler sağlamak için her dağıtıma benzersiz bir ad verin.
Sonraki adımlar
Dosyanızda parametreleri tanımlamayı anlamak için bkz . Bicep dosyalarının yapısını ve söz dizimini anlama.