Resource Manager parametre dosyası oluşturma
Parametreleri betiğinizde satır içi değerler olarak geçirmek yerine parametre değerlerini içeren bir JSON dosyası kullanabilirsiniz. Bu makalede, JSON şablonuyla kullandığınız bir parametre dosyasının nasıl oluşturulacağı gösterilmektedir.
İpucu
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz . parametre dosyaları.
Parametre dosyası
Parametre dosyası aşağıdaki biçimi kullanır:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"value": "<second-value>"
}
}
}
Parametre dosyasının parametre değerlerini düz metin olarak kaydettiğine dikkat edin. Güvenlik nedeniyle, parolalar gibi hassas değerler için bu yaklaşım önerilmez. Hassas bir değere sahip bir parametre geçirmeniz gerekiyorsa, değeri bir anahtar kasasında tutun. Ardından parametre dosyanıza anahtar kasasına bir başvuru ekleyin. Dağıtım sırasında hassas değer güvenli bir şekilde alınır. Daha fazla bilgi için bkz . Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.
Aşağıdaki parametre dosyası, bir düz metin değeri ve anahtar kasasında depolanan hassas bir değer içerir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"<first-parameter-name>": {
"value": "<first-value>"
},
"<second-parameter-name>": {
"reference": {
"keyVault": {
"id": "<resource-id-key-vault>"
},
"secretName": "<secret-name>"
}
}
}
}
Anahtar kasasından değerleri kullanma hakkında daha fazla bilgi için bkz . Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.
Parametre değerlerini tanımlama
Parametre adlarının ve değerlerinin nasıl tanımlanacağına karar vermek için JSON şablonunuzu açın ve bölümünü gözden geçirin parameters
. Aşağıdaki örnekte JSON şablonunun parametreleri gösterilmektedir.
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
}
}
Parametre dosyasında, farkedecek ilk ayrıntı her parametrenin adıdır. Parametre dosyanızdaki parametre adları, şablonunuzdaki parametre adlarla eşleşmelidir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
},
"storageAccountType": {
}
}
}
Parametre türüne dikkat edin. Parametre dosyanızdaki parametre türleri, şablonunuzla aynı türleri kullanmalıdır. Bu örnekte her iki parametre türü de dizedir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": ""
},
"storageAccountType": {
"value": ""
}
}
}
Varsayılan değere sahip parametreler için şablonu denetleyin. Parametrenin varsayılan değeri varsa, parametre dosyasında bir değer sağlayabilirsiniz, ancak gerekli değildir. Parametre dosyası değeri, şablonun varsayılan değerini geçersiz kılar.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "" // This value must be provided.
},
"storageAccountType": {
"value": "" // This value is optional. Template will use default value if not provided.
}
}
}
Şablonun izin verilen değerlerini ve uzunluk üst sınırı gibi kısıtlamaları denetleyin. Bu değerler, bir parametre için sağlayabileceğiniz değer aralığını belirtir. Bu örnekte, storagePrefix
en fazla 11 karakter olabilir ve storageAccountType
izin verilen bir değer belirtmelidir.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "storage"
},
"storageAccountType": {
"value": "Standard_ZRS"
}
}
}
Not
Parametre dosyanız yalnızca şablonda tanımlanan parametrelerin değerlerini içerebilir. Parametre dosyanız şablonun parametreleriyle eşleşmeyen ek parametreler içeriyorsa bir hata alırsınız.
Parametre türü biçimleri
Aşağıdaki örnekte farklı parametre türlerinin biçimleri gösterilmektedir: dize, tamsayı, boole, dizi ve nesne.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"exampleString": {
"value": "test string"
},
"exampleInt": {
"value": 4
},
"exampleBool": {
"value": true
},
"exampleArray": {
"value": [
"value 1",
"value 2"
]
},
"exampleObject": {
"value": {
"property1": "value1",
"property2": "value2"
}
}
}
}
Parametre dosyasıyla şablon dağıtma
Azure CLI'dan kullanarak @
yerel parametre dosyasını ve parametre dosyası adını geçirirsiniz. Örneğin, @storage.parameters.json
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters @storage.parameters.json
Daha fazla bilgi için bkz . ARM şablonları ve Azure CLI ile kaynakları dağıtma.
Azure PowerShell'den parametresini TemplateParameterFile
kullanarak yerel bir parametre dosyası geçirirsiniz.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.json `
-TemplateParameterFile C:\MyTemplates\storage.parameters.json
Daha fazla bilgi için bkz . ARM şablonları ve Azure PowerShell ile kaynakları dağıtma.
Not
Portalda özel şablon dikey penceresiyle parametre dosyası kullanmak mümkün değildir.
İpucu
Visual Studio'da Azure Kaynak Grubu projesini kullanıyorsanız, parametre dosyasının Derleme Eyleminin İçerik olarak ayarlandığından emin olun.
Dosya adı
Parametre dosyasının genel adlandırma kuralı, şablon adına parametreleri eklemektir. Örneğin, şablonunuz azuredeploy.json olarak adlandırılırsa parametre dosyanız azuredeploy.parameters.json olarak adlandırılır. Bu adlandırma kuralı, şablon ve parametreler arasındaki bağlantıyı görmenize yardımcı olur.
Farklı ortamlara dağıtmak için birden fazla parametre dosyası oluşturursunuz. Parametre dosyalarını adlandırdığınızda, bunların geliştirme ve üretim gibi kullanımlarını tanımlayın. Örneğin, kaynakları dağıtmak için azuredeploy.parameters-dev.json ve azuredeploy.parameters-prod.json kullanın.
Parametre önceliği
Aynı dağıtım işleminde satır içi parametreleri ve yerel parametre dosyasını kullanabilirsiniz. Örneğin, yerel parametre dosyasında bazı değerler belirtebilir ve dağıtım sırasında satır içine başka değerler ekleyebilirsiniz. Hem yerel parametre dosyasında hem de satır içi bir parametre için değerler sağlarsanız, satır içi değer önceliklidir.
Dosyaya URI sağlayarak bir dış parametre dosyası kullanmak mümkündür. Dış parametre dosyası kullandığınızda, diğer değerleri satır içinde veya yerel bir dosyadan geçiremezsiniz. Tüm satır içi parametreler yoksayılır. Dış dosyadaki tüm parametre değerlerini sağlayın.
Parametre adı çakışmaları
Şablonunuz PowerShell komutundaki parametrelerden biriyle aynı ada sahip bir parametre içeriyorsa, PowerShell şablonunuzdan parametresini sonek FromTemplate
ile sunar. Örneğin, şablonunuzda adlı ResourceGroupName
bir parametre New-AzResourceGroupDeployment cmdlet'indeki parametreyle ResourceGroupName
çakılır. için ResourceGroupNameFromTemplate
bir değer sağlamanız istenir. Bu karışıklığı önlemek için dağıtım komutları için kullanılmayan parametre adlarını kullanın.
Sonraki adımlar
- Şablonda parametre tanımlama hakkında daha fazla bilgi için bkz . ARM şablonlarındaki parametreler.
- Anahtar kasasından değerleri kullanma hakkında daha fazla bilgi için bkz . Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.