Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, kaynaklarınızı Azure'a dağıtmak için Bicep dosyalarıyla Azure PowerShell'in 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 PowerShell'e ve Azure'a bağlı olmanız gerekir:
- Yerel bilgisayarınıza Azure PowerShell cmdlet'lerini yükleyin. Bicep dosyalarını dağıtmak için Azure PowerShell sürüm 5.6.0 veya üzeri gerekir. Daha fazla bilgi için bkz. Azure PowerShell kullanmaya başlayın.
- Bicep CLI'yi yükleyin. Azure PowerShell otomatik olarak yüklemediğinden Bicep CLI'yi el ile yüklemeniz gerekir.
-
Azure'a bağlanmak için kullanın
Connect-AzAccount. Birden çok Azure aboneliğiniz varsa komutunu da çalıştırmanızSet-AzContextgerekebilir. Daha fazla bilgi için bkz Birden çok Azure aboneliği kullanma.
PowerShell 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ı veya Azure Resource Manager (ARM) şablonu dağıtmak için, dağıttığınız kaynaklara yazma erişiminiz ve Microsoft.Resources/deployments kaynak türüne ait tüm işlemlere erişiminiz olması gerekir. Örneğin, bir sanal makine dağıtmak için Microsoft.Compute/virtualMachines/write ve Microsoft.Resources/deployments/* izinlerine ihtiyacınız vardır. What-if işlemi aynı izin gereksinimlerine sahiptir.
Azure CLI sürüm 2.76.0 veya üzeri ve Azure PowerShell sürüm 13.4.0 veya üzeri , ARM'nin bu işlem sırasında Bicep şablonunu nasıl kapsamlı bir şekilde doğruladığını belirlemek için ValidationLevel anahtarını tanıtır. Daha fazla bilgi için Olası Senaryo Komutları başlığına bakın.
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
New-AzResourceGroupDeployment:New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateFile <path-to-bicep>Bir aboneliğe dağıtım yapmak için
New-AzSubscriptionDeploymentöğesini kullanın; buNew-AzDeploymentcmdlet'inin takma adıdır.New-AzSubscriptionDeployment -Location <location> -TemplateFile <path-to-bicep>Abonelik seviyesi dağıtımları hakkında daha fazla bilgi için, Kaynakları abonelik düzeyinde dağıtmak için Bicep'i kullanma sayfasına bakınız.
Bir yönetim grubuna dağıtmak için kullanın
New-AzManagementGroupDeployment.New-AzManagementGroupDeployment -ManagementGroupId <management-group-id> -Location <location> -TemplateFile <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 tenant için dağıtım yapmak üzere
New-AzTenantDeploymentkullanın.New-AzTenantDeployment -Location <location> -TemplateFile <path-to-bicep>Kiracı düzeyindeki dağıtımlar hakkında daha fazla bilgi edinmek için Kaynakları kiracı düzeyinde dağıtmak için Bicep'i kullanma bölümüne bakın.
Yerel Bicep dosyasını dağıtın
Bu bölümde yerel Bicep dosyasının nasıl dağıtılacağı açıklanmaktadır. Yerel makinenizden veya dış makinenizden bir Bicep dosyası dağıtabilirsiniz.
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.
New-AzResourceGroup -Name ExampleGroup -Location "Central US"
Yerel Bicep dosyasını dağıtmak için, dağıtım komutunda -TemplateFile anahtarını kullanın.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleGroup `
-TemplateFile <path-to-bicep>
Dağıtımın tamamlanması birkaç dakika sürebilir.
Uzaktan Bicep dosyasını dağıt
Azure PowerShell ş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, parametrelerin adlarını New-AzResourceGroupDeployment komutuyla belirtin. Örneğin, bicep dosyasına bir dize ve dizi geçirmek için şunu kullanın:
$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleString "inline string" `
-exampleArray $arrayParam
parametresini, şablonun TemplateParameterObject parametrelerini içeren bir karma tablo üzerinden geçirmek için kullanabilirsiniz:
$params = @{
exampleString = "inline string"
exampleArray = "value1", "value2"
}
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-TemplateParameterObject $params
Ayrıca dosyanın içeriğini alabilir ve bu içeriği satır içi parametre olarak sağlayabilirsiniz:
$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleString $(Get-Content -Path c:\MyTemplates\stringcontent.txt -Raw) `
-exampleArray $arrayParam
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.
Bir nesne dizisi geçirmeniz gerekiyorsa, Azure PowerShell'de karma tablolar oluşturun ve bunları bir diziye ekleyin. Dağıtım sırasında bu diziyi parametre olarak geçirin:
$hash1 = @{ Name = "firstSubnet"; AddressPrefix = "10.0.0.0/24"}
$hash2 = @{ Name = "secondSubnet"; AddressPrefix = "10.0.1.0/24"}
$subnetArray = $hash1, $hash2
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleArray $subnetArray
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. Bicep parametreleri dosyasının yerel bir dosya olması gerekirken, JSON şablon dosyası çevrimiçi bir yerde bulunabilir. Parametre dosyaları hakkında daha fazla bilgi için Bicep dağıtımı için parametre dosyaları oluşturma bölümüne bakın.
Bicep parametre dosyasını kullanarak Azure PowerShell sürüm 10.4.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, bir Bicep parametre dosyası belirtirken -TemplateParameterFile anahtarı için -TemplateFile anahtarı vermenize gerek yoktur.
Aşağıdaki örnekte storage.bicepparam adlı bir parametre dosyası gösterilmektedir. Dosya, komutun çalıştığı dizindedir:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateParameterFile storage.bicepparam
JSON parametre dosyaları
JSON parametre dosyası yerel veya erişilebilir URI'ye sahip bir dış dosya olabilir.
Yerel bir parametre dosyasını geçirmek için TemplateParameterFile anahtarını bir JSON parametre dosyasıyla kullanın:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\BicepFiles\storage.bicep `
-TemplateParameterFile c:\BicepFiles\storage.parameters.json
Dış parametreler dosyasını geçirmek için parametresini TemplateParameterUri kullanın:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\BicepFiles\storage.bicep `
-TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json
TemplateParameterUri parametresi yalnızca JSON parametre dosyalarını desteklediğinden dosyaları desteklemez.bicepparam.
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.
Değişiklikleri önizle
Bicep dosyanızı dağıtmadan önce, Bicep dosyasının ortamınızda yapacağı değişikliklerin önizlemesini görebilirsiniz. Ne olurdu eğer operasyonunu kullanarak Bicep dosyasının beklediğiniz değişiklikleri yaptığını doğrulayın. What-if ayrıca Bicep dosyasını hatalar için doğrular.
Şablon belirtimini dağıt
Azure PowerShell, şu anda şablon belirtimlerini oluşturmaya yardımcı olabilecek 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:
$suffix = Get-Random -Maximum 1000
$deploymentName = "ExampleDeployment" + $suffix
Veya bir tarih değeri ekleyin:
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="ExampleDeployment"+"$today"
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ım ile değiştirilir. Örneğin, adlı newStorage bir depolama hesabı dağıtan adlı storage1 bir dağıtım çalıştırırsanız ve aynı anda adlı newStorage bir depolama hesabını dağıtan adlı storage2 başka bir dağıtım çalıştırırsanız, yalnızca bir depolama hesabı dağıtırsınız. Elde edilen depolama hesabı storage2 olarak adlandırılır.
Ancak, newStorage adlı bir dağıtım storage1 adlı bir depolama hesabı dağıtıyorsa ve ilk dağıtım tamamlandıktan sonra storage2 adlı bir depolama hesabını dağıtan newStorage adlı başka bir dağıtım hemen çalıştırılırsa, 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 adet 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. Aynı anda newStorage1 adlı bir depolama hesabı dağıtan bir dağıtımı ve storage1 adlı bir başka depolama hesabı dağıtan newStorage2 adlı başka bir dağıtımı çalıştırırsanız, iki depolama hesabınız ve dağıtım geçmişinde iki girdiniz olur.
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ı öğrenmek için Bicep dosyalarının yapısını ve sözdizimini anlayın.