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:
- Yerel bilgisayarınıza Azure CLI komutlarını yükleyin. Bicep dosyalarını dağıtmak için Azure CLI 2.20.0 veya sonraki bir sürümü gerekir.
- Bağlan az login kullanarak Azure'a giriş yapın. Birden çok Azure aboneliğiniz varsa az account set de çalıştırmanız 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.
Bir kaynak grubuna dağıtmak için az deployment group create kullanın:
az deployment group create --resource-group <resource-group-name> --template-file <path-to-bicep>Bir aboneliğe dağıtmak için az deployment sub create kullanın:
az deployment sub create --location <location> --template-file <path-to-bicep>Abonelik düzeyinde dağıtımlar hakkında daha fazla bilgi için bkz. Abonelik düzeyinde kaynak grupları ve kaynaklar oluşturma.
Bir yönetim grubuna dağıtmak için az deployment mg create kullanın:
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. Yönetim grubu düzeyinde kaynak oluşturma.
Bir kiracıya dağıtmak için az deployment tenant create kullanın:
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. Kiracı düzeyinde kaynak oluşturma.
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
- Dosyanıza parametreleri tanımlamayı anlamak için bkz. Bicep dosyalarının yapısını ve söz dizimini anlama.