Kaynak Yöneticisi Şablonlarını Birden Fazla Kaynak Grubuna veya Aboneliğe Dağıtma
Genellikle, şablonunuzdaki tüm kaynakları tek bir kaynak grubuna dağıtabilirsiniz. Ancak, bir dizi kaynak dağıtmak, ancak bunları farklı kaynak gruplarına veya aboneliklere dağıtmak istediğiniz senaryolar olabilir. Tek bir dağıtımda yalnızca beş kaynak grubuna dağıtabilirsiniz.
Parametre Dosyaları
Parametreleri komut satırına satır içi değerleri olarak yerleştirmek yerine parametre değerlerini içeren bir JSON dosyasını kullanmak daha kolay olabilir. Parametre dosyası aşağıdaki biçimde olmalıdır:
{
“$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#”,
“contentVersion”: “1.0.0.0”,
“parameters”: {
“storageAccountType”: {
“value”: “Standard_GRS”
}
}
}
Parametreler bölümünün, şablonunuzda tanımlanan parametreyle (storageAccountType) eşleşen bir parametre adı içerdiğine dikkat edin. Parametre dosyası parametre için bir değer içerir. Bu değer, dağıtım sırasında şablona otomatik olarak eklenir. Farklı dağıtım senaryoları için birden çok parametre dosyası oluşturabilir ve uygun parametre dosyasını iletebilirsiniz.
Yukarıdaki örnek kodu kopyalayın ve bir text dosyası içerisine kaydedin. Text dosyasının adını storage.parameters.json olarak değiştirin.
Yerel bir parametre dosyasını iletmek için TemplateParameterFile parametresini kullanın:
New-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json `
-TemplateParameterFile c:\MyTemplates\storage.parameters.json
Harici bir parametre dosyası geçirmek için TemplateParameterUri parametresini kullanın:
New-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-storage-account-create/azuredeploy.json `
-TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-storage-account-create/azuredeploy.parameters.json
Aynı dağıtım işleminde satır içi parametreleri ve yerel bir parametre dosyasını kullanabilirsiniz. Örneğin, yerel parametre dosyasında bazı değerleri belirtebilir ve dağıtım sırasında satır içi değerler ekleyebilirsiniz. Hem yerel parametre dosyasında hem de satır içi bir parametre için değerler girerseniz, satıriçi değer önceliklidir.
Ancak, harici bir parametre dosyası kullandığınızda, satır içi veya yerel bir dosyadan başka değerler iletemezsiniz. TemplateParameterUri parametresinde bir parametre dosyası belirttiğinizde, tüm satır içi parametreler yoksayılır. Harici dosyadaki tüm parametre değerlerini sağlamalısınız. Şablonunuz parametre dosyasına ekleyemediğiniz hassas bir değeri içeriyorsa, o değeri bir key vault’una ekleyin veya dinamik olarak tüm parametre değerlerini satır içi olarak sağlayınız.
Şablonunuz, PowerShell komutundaki parametrelerden biri ile aynı adı taşıyan bir parametre içeriyorsa, PowerShell şablonunuzdaki parametreyi FromTemplate son ekiyle birlikte sunar. Örneğin, şablonunuzda ResourceGroupName adlı bir parametre, New-AzureRmResourceGroupDeployment cmdlet’indeki ResourceGroupName parametresiyle çakışır. ResourceGroupNameFromTemplate için bir değer sağlamanız istenir. Genel olarak, dağıtım işlemlerinde kullanılan parametrelerle aynı adı taşıyan parametrelere isim vermeyerek bu karışıklıktan kaçınmalısınız.
Bir şablon dağıtım testi
Şablonunuzu ve parametre değerlerini gerçekte herhangi bir kaynak dağıtmadan test etmek için Test-AzureRmResourceGroupDeployment kullanabilirsiniz.
Test-AzureRmResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json -storageAccountType Standard_GRS
Herhangi bir hata saptanmazsa, komut yanıt alınmadan tamamlanır. Bir hata tespit edilirse, komut bir hata mesajı döndürür. Örneğin, SKU depolama hesabı için yanlış bir değer iletmeye çalışırken, aşağıdaki hatayı döndürür:
Test-AzureRmResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile c:\MyTemplates\storage.json -storageAccountType badSku
Code : InvalidTemplate
Message : Deployment template validation failed: ‘The provided value ‘badSku’ for the template parameter ‘storageAccountType’
at line ’15’ and column ’24’ is not valid. The parameter value is not part of the allowed value(s):
‘Standard_LRS,Standard_ZRS,Standard_GRS,Standard_RAGRS,Premium_LRS’.’.
Details :
Şablonunuzda bir sözdizimi hatası varsa, komut şablonun ayrıştırılamadığını belirten bir hata döndürür. Mesaj, ayrıştırma hatasının satır numarasını ve konumunu gösterir.
Test-AzureRmResourceGroupDeployment : After parsing a value an unexpected character was encountered:
“. Path ‘variables’, line 31, position 3.
Incremental ve tam dağıtımlar
Kaynaklarınızı dağıtırken, dağıtımın artımlı (incremental) bir güncelleştirme veya tam bir güncelleştirme olduğunu belirtmelisiniz. Bu iki mod arasındaki temel fark, Kaynak Yöneticisi’ndeki varolan kaynakları şablonda olmayan kaynak grubunda nasıl işlediğidir:
- Komple modda Kaynak Yöneticisi, kaynak grubunda bulunan ancak şablonda belirtilen kaynakları siler.
- Artımlı (inceremental) modda, Kaynak Yöneticisi, kaynak grubunda varolan, ancak şablonda belirtilmeyen değişmemiş kaynaklar bırakır.
Her iki mod için Kaynak Yöneticisi, şablonda belirtilen tüm kaynakları sağlamaya çalışır. Kaynak, kaynak grubunda zaten varsa ve ayarları değiştirilmemişse, işlem hiçbir değişiklik yapmaz. Bir kaynağın ayarlarını değiştirirseniz, kaynak bu yeni ayarlarla hazırlanır. Mevcut bir kaynağın konumunu veya türünü güncellemeyi denerseniz, dağıtım hata ile başarısız olur. Bunun yerine, ihtiyacınız olan yere veya türe yeni bir kaynak dağıtın.
Varsayılan olarak, Kaynak Yöneticisi artımlı (incremental) modu kullanır.