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 dağıtmak için Azure Resource Manager şablonlarıyla (ARM şablonları) Azure PowerShell nasıl kullanılacağı açıklanmaktadır. Azure çözümlerinizi dağıtma ve yönetme kavramlarını bilmiyorsanız bkz. template dağıtımına genel bakış.
İpucu
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep önerilir. Daha fazla bilgi edinmek için bkz. Bicep ve Azure PowerShell ile kaynakları dağıtma.
Önkoşullar
Dağıtmak için bir şablona ihtiyacınız vardır. Henüz bir şablonunuz yoksa, Azure Hızlı Başlangıç şablonları deposundan bir example şablonu indirip kaydedin. Bu makalede kullanılan yerel dosya adı C:\MyTemplates\azuredeploy.json'dir.
Azure PowerShell yüklemeniz ve Azure bağlanmanız gerekir:
- yerel bilgisayarınıza Azure PowerShell cmdlet'leri yükleyin. Daha fazla bilgi için bkz. Azure PowerShell ile çalışmaya başlama.
- Connect-AZAccount kullanarak Azure bağlanabilirsiniz. Birden çok Azure aboneliğiniz varsa Set-AzContext çalıştırmanız gerekebilir. Daha fazla bilgi için bkz. Birden çok Azure aboneliği kullanma.
PowerShell yüklü değilse Azure Cloud Shell kullanabilirsiniz. Daha fazla bilgi için bkz. arm şablonlarını Azure Cloud Shell'dan dağıtma.
Gerekli izinler
bir Bicep dosyası veya Azure Resource Manager (ARM) şablonu dağıtmak için, dağıttığınız kaynaklara yazma erişimine ve Microsoft.Resources/deployments kaynak türündeki tüm işlemlere erişmeniz gerekir. Örneğin, bir sanal makine dağıtmak için Microsoft.Compute/virtualMachines/write ve Microsoft.Resources/deployments/* izinlerine sahip olmanız gerekir. 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 tam olarak doğruladığını belirlemek için ValidationLevel anahtarını tanıtın. Daha fazla bilgi için bkz Varsa komutları
Rollerin ve izinlerin listesi için bkz. Azure yerleşik roller.
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 New-AzResourceGroupDeployment komutunu kullanın:
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateFile <path-to-template>Bir aboneliğe dağıtım yapmak için, New-AzSubscriptionDeployment komutunu kullanın; bu,
New-AzDeploymentcmdlet'inin bir takma adıdır.New-AzSubscriptionDeployment -Location <location> -TemplateFile <path-to-template>Abonelik düzeyindeki dağıtımlar hakkında daha fazla bilgi için Abonelik düzeyinde kaynak grupları ve kaynaklar oluşturma başlıklı makaleye bakın.
Bir yönetim grubuna dağıtmak için New-AzManagementGroupDeployment komutunu kullanın.
New-AzManagementGroupDeployment -Location <location> -TemplateFile <path-to-template>Yönetim grubu düzeyinde dağıtımlar hakkında daha fazla bilgi için bkz Yönetim grubu düzeyinde kaynak oluşturma.
Kiracıya dağıtmak için New-AzTenantDeployment komutunu kullanın.
New-AzTenantDeployment -Location <location> -TemplateFile <path-to-template>Kiracı düzeyi dağıtımları hakkında daha fazla bilgi için bakınız Kiracı düzeyinde kaynak oluşturma.
Her kapsam için şablonu dağıtan kullanıcının kaynak oluşturmak için gerekli izinlere sahip olması gerekir.
Dağıtım adı
ARM şablonu 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 şablon dosyasının adı kullanılır. Örneğin, adlı azuredeploy.json bir şablon dağıtırsanız ve dağıtım adı belirtmezseniz, dağıtım olarak adlandırılır azuredeploy.
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 tamamlanmamış tüm dağıtımlar, en son dağıtımla değiştirilir. Örneğin, adlı newStoragebir depolama hesabı dağıtan adlı storage1 bir dağıtım çalıştırırsanız ve aynı zamanda adlı newStoragebir depolama hesabı 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. Ortaya çıkan depolama hesabı storage2 olarak adlandırılır.
Ancak adlı newStorage bir depolama hesabı storage1dağıtan adlı bir dağıtım çalıştırırsanız ve tamamlandıktan hemen sonra adlı newStoragebir depolama hesabı dağıtan adlı storage2 başka bir dağıtım ç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 kaydınız var.
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ı zamanda adlı storage1bir depolama hesabı dağıtan başka bir dağıtım newStorage2 çalıştırırsanız, dağıtım geçmişinde iki depolama hesabınız storage2ve 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.
Yerel şablonu dağıtma
Yerel makinenizden veya harici olarak depolanan bir şablondan şablon dağıtabilirsiniz. Bu bölümde yerel şablon dağıtma 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. Ad bir noktayla bitemez.
New-AzResourceGroup -Name ExampleGroup -Location "Central US"
Yerel şablon dağıtmak için dağıtım komutundaki parametresini kullanın -TemplateFile . Aşağıdaki örnekte şablondan gelen parametre değerinin nasıl ayarlanacağı da gösterilmektedir.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleGroup `
-TemplateFile <path-to-template>
Dağıtımın tamamlanması birkaç dakika sürebilir.
Uzak şablonu dağıt
ARM şablonlarını yerel makinenizde depolamak yerine bunları bir dış konumda depolamayı tercih edebilirsiniz. Şablonları bir kaynak denetimi deposunda (GitHub gibi) depolayabilirsiniz. İsterseniz, kuruluşunuzda paylaşılan erişim için bunları bir Azure depolama hesabında depolayabilirsiniz.
Not
Özel GitHub deposunda depolanan bir şablonu dağıtmak veya bağlantılı bir şablona başvurmak için Özel ve Güvenli Azure portal Teklifi Oluşturma içinde belgelenen özel bir çözüme bakın. GitHub jetonunu Azure Key Vault'tan almaya yönelik bir Azure işlevi oluşturabilirsiniz.
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 bir noktayla bitemez.
New-AzResourceGroup -Name ExampleGroup -Location "Central US"
Dış şablon kullanmak için -TemplateUri parametresini kullanın.
New-AzResourceGroupDeployment `
-Name remoteTemplateDeployment `
-ResourceGroupName ExampleGroup `
-TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Yukarıdaki örnek, şablon için genel olarak erişilebilen bir URI gerektirir. Bu, şablonunuzun hassas veriler içermemesi gerektiğinden çoğu senaryoda çalışır. Hassas verileri (yönetici parolası gibi) belirtmeniz gerekiyorsa bu değeri güvenli bir parametre olarak geçirin. Ancak, şablona erişimi yönetmek istiyorsanız şablon belirtimlerini kullanmayı göz önünde bulundurun.
Depolama hesabında depolanan ve göreli yol kullanılarak uzak bağlı şablonları dağıtmak için, SAS belirtecini belirtmek amacıyla QueryString kullanın.
New-AzResourceGroupDeployment `
-Name linkedTemplateWithRelativePath `
-ResourceGroupName "myResourceGroup" `
-TemplateUri "https://stage20210126.blob.core.windows.net/template-staging/mainTemplate.json" `
-QueryString "$sasToken"
Daha fazla bilgi için bkz Bağlı Şablonlar İçin Göreli Yol Kullanma.
Şablon özelliklerini dağıtma
Yerel veya uzak şablon dağıtmak yerine template spec oluşturabilirsiniz. Şablon belirtimi, Azure aboneliğinizde ARM şablonu içeren bir kaynaktır. Şablonu kuruluşunuzdaki kullanıcılarla güvenli bir şekilde paylaşmayı kolaylaştırır. Azure rol tabanlı erişim denetimi (Azure RBAC) ile şablon belirtimine erişim vermek için kullanırsınız. Bu özellik şu anda önizleme aşamasındadır.
Aşağıdaki örneklerde şablon belirtiminin nasıl oluşturulacağı ve dağıtılacağı gösterilmektedir.
İlk olarak, ARM şablonunu sağlayarak şablon belirtimini oluşturun.
New-AzTemplateSpec `
-Name storageSpec `
-Version 1.0 `
-ResourceGroupName templateSpecsRg `
-Location westus2 `
-TemplateJsonFile ./mainTemplate.json
Ardından şablon spesifikasyonunun kimliğini alın ve dağıtımı gerçekleştirin.
$id = (Get-AzTemplateSpec -Name storageSpec -ResourceGroupName templateSpecsRg -Version 1.0).Versions.Id
New-AzResourceGroupDeployment `
-ResourceGroupName demoRG `
-TemplateSpecId $id
Daha fazla bilgi için bkz. Azure Resource Manager şablonu belirtimleri.
Değişiklikleri önizle
Şablonunuzu dağıtmadan önce, şablonun ortamınızda yapacağı değişikliklerin önizlemesini görebilirsiniz. Şablonun beklediğiniz değişiklikleri yaptığını doğrulamak için durum işlemini kullanın. What-if, şablonu hatalar için de doğrular.
Parametre değerlerini geçirme
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 New-AzResourceGroupDeployment komutuyla parametrelerin adlarını belirtin. Örneğin, bir dize ve diziyi şablona geçirmek için şunu kullanın:
$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-template> `
-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-template> `
-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, 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-template> `
-exampleArray $subnetArray
JSON 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 veya erişilebilir URI'ye sahip bir dış dosya olabilir.
Parametre dosyası hakkında daha fazla bilgi için bkz. Resource Manager Parametre dosyası oluşturma.
Yerel parametre dosyasını geçirmek için parametresini TemplateParameterFile kullanın:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile <path-to-template> `
-TemplateParameterFile c:\MyTemplates\storage.parameters.json
Dış parametre dosyasını geçirmek için parametresini TemplateParameterUri kullanın:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json `
-TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json
Parametre dosyası hakkında daha fazla bilgi için bkz. Resource Manager parametre dosyası oluşturma.
Bicep parametre dosyaları
Azure PowerShell sürüm 10.4.0 veya üzeri ve Bicep CLI sürüm 0.22.6 veya üzeri ile, bir Bicep parametre dosyası kullanarak bir ARM şablon dosyası dağıtabilirsiniz. Bicep parametreleri dosyasındaki using deyimiyle, -TemplateFile seçeneği için bir Bicep parametre dosyası belirtirken -TemplateParameterFile seçeneğini belirtmenize gerek yoktur.
Aşağıdaki örnekte storage.bicepparam adlı bir parametre dosyası gösterilmektedir. Dosya, komutun çalıştırıldığı dizinde yer alır.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateParameterFile storage.bicepparam
Bicep parametre dosyası hakkında daha fazla bilgi için bkz. Bicep parameters file.
Sonraki adımlar
- Başarılı bir dağıtıma geri almak için, hata aldığınızda Hatadan başarılı dağıtıma geri alma bölümüne bakın.
- Kaynak grubunda var olan ancak şablonda tanımlanmayan kaynakların nasıl işleneceğini belirtmek için bkz. Azure Resource Manager dağıtım modları.
- Şablonunuzda parametreleri tanımlamayı anlamak için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.
- SAS belirteci gerektiren bir şablonu dağıtma hakkında bilgi için bkz . SAS belirteci ile özel ARM şablonu dağıtma.