ARM şablonlarındaki parametreler
Bu makalede, Azure Resource Manager şablonunuzda (ARM şablonunda) parametrelerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Parametreler için farklı değerler sunarak, farklı ortamlar için bir şablonu yeniden kullanabilirsiniz.
Kaynak Yöneticisi, dağıtım işlemlerini başlatmadan önce parametre değerlerini çözer. Parametrenin şablonda kullanıldığı her yerde, Kaynak Yöneticisi çözümlenme değeriyle değiştirilir.
Her parametrenin veri türlerindenbirine ayarlanması gerekir.
En az bildirim
En azından, her parametre bir ad ve tür gerektirir.
Azure portal aracılığıyla bir şablon dağıttığınızda, Camel-cased parametre adları boşlukla ayrılmış adlara açıktır. Örneğin, aşağıdaki örnekteki DemoString tanıtım dizesi olarak gösterilmiştir. daha fazla bilgi için bkz. GitHub deposundan şablon dağıtmak ve ARM şablonları ve Azure portal kullanarak kaynak dağıtmakiçin dağıtım düğmesi kullanma.
"parameters": {
"demoString": {
"type": "string"
},
"demoInt": {
"type": "int"
},
"demoBool": {
"type": "bool"
},
"demoObject": {
"type": "object"
},
"demoArray": {
"type": "array"
}
}
Güvenli parametreler
Dize veya nesne parametrelerini güvenli olarak işaretleyebilirsiniz. Güvenli bir parametrenin değeri dağıtım geçmişine kaydedilmez ve günlüğe kaydedilmez.
"parameters": {
"demoPassword": {
"type": "secureString"
},
"demoSecretObject": {
"type": "secureObject"
}
}
İzin verilen değerler
Bir parametre için izin verilen değerleri tanımlayabilirsiniz. Bir dizide izin verilen değerleri sağlarsınız. İzin verilen değerlerden biri olmayan bir parametre için bir değer geçirilirse, doğrulama sırasında dağıtım başarısız olur.
"parameters": {
"demoEnum": {
"type": "string",
"allowedValues": [
"one",
"two"
]
}
}
Varsayılan değer
Bir parametre için varsayılan bir değer belirtebilirsiniz. Dağıtım sırasında bir değer sağlanmamışsa varsayılan değer kullanılır.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso"
}
}
Parametresi için diğer özelliklerle birlikte varsayılan bir değer belirtmek için aşağıdaki sözdizimini kullanın.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso",
"allowedValues": [
"Contoso",
"Fabrikam"
]
}
}
Varsayılan değer ile ifadeleri kullanabilirsiniz. Parameters bölümünde başvuru işlevini veya liste işlevlerinden herhangi birini kullanamazsınız. Bu işlevler, bir kaynağın çalışma zamanı durumunu alır ve parametreler çözümlendiğinde dağıtımdan önce yürütülemez.
Diğer parametre özellikleriyle ifadelere izin verilmez.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Varsayılan bir değer oluşturmak için başka bir parametre değeri de kullanabilirsiniz. Aşağıdaki şablon, site adından bir konak planı adı oluşturur.
"parameters": {
"siteName": {
"type": "string",
"defaultValue": "[concat('site', uniqueString(resourceGroup().id))]"
},
"hostingPlanName": {
"type": "string",
"defaultValue": "[concat(parameters('siteName'),'-plan')]"
}
}
Uzunluk kısıtlamaları
Dize ve dizi parametreleri için minimum ve maksimum uzunlukları belirtebilirsiniz. Bir veya her iki kısıtlamayı da ayarlayabilirsiniz. Dizeler için uzunluk, karakter sayısını belirtir. Diziler için, Uzunluk dizideki öğelerin sayısını belirtir.
Aşağıdaki örnek iki parametre bildirir. Tek parametre 3-24 karakter uzunluğunda olması gereken depolama hesabı adına yöneliktir. Diğer parametre 1-5 öğeden olması gereken bir dizidir.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"appNames": {
"type": "array",
"minLength": 1,
"maxLength": 5
}
}
Tamsayı kısıtlamaları
Tamsayı parametreleri için en düşük ve en yüksek değerleri ayarlayabilirsiniz. Bir veya her iki kısıtlamayı da ayarlayabilirsiniz.
"parameters": {
"month": {
"type": "int",
"minValue": 1,
"maxValue": 12
}
}
Description
Şablonunuzun kullanıcılarının sağlanacak değeri anlamasına yardımcı olması için parametreye bir açıklama ekleyebilirsiniz. Şablonu Portal üzerinden dağıttığınızda, açıklamada sağladığınız metin, bu parametre için bir ipucu olarak otomatik olarak kullanılır. Yalnızca metin, parametre adından çıkarsandan daha fazla bilgi sağlıyorsa açıklama ekleyin.
"parameters": {
"virtualMachineSize": {
"type": "string",
"metadata": {
"description": "Must be at least Standard_A3 to support 2 NICs."
},
"defaultValue": "Standard_DS1_v2"
}
}
Parametre kullan
Bir parametrenin değerine başvurmak için Parametreler işlevini kullanın. Aşağıdaki örnek, bir Anahtar Kasası adı için bir parametre değeri kullanır.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "string",
"defaultValue": "[format('keyVault{0}', uniqueString(resourceGroup().id))]"
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2021-06-01-preview",
"name": "[parameters('vaultName')]",
...
}
]
}
Parametre olarak nesneler
İlgili değerleri bir nesne olarak geçirerek organize edebilirsiniz. Bu yaklaşım ayrıca şablondaki parametre sayısını azaltır.
Aşağıdaki örnek bir nesnesi olan bir parametresini gösterir. Varsayılan değer, nesne için beklenen özellikleri gösterir. Bu özellikler, dağıtılacak kaynağı tanımlarken kullanılır.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vNetSettings": {
"type": "object",
"defaultValue": {
"name": "VNet1",
"location": "eastus",
"addressPrefixes": [
{
"name": "firstPrefix",
"addressPrefix": "10.0.0.0/22"
}
],
"subnets": [
{
"name": "firstSubnet",
"addressPrefix": "10.0.0.0/24"
},
{
"name": "secondSubnet",
"addressPrefix": "10.0.1.0/24"
}
]
}
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-02-01",
"name": "[parameters('vNetSettings').name]",
"location": "[parameters('vNetSettings').location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vNetSettings').addressPrefixes[0].addressPrefix]"
]
},
"subnets": [
{
"name": "[parameters('vNetSettings').subnets[0].name]",
"properties": {
"addressPrefix": "[parameters('vNetSettings').subnets[0].addressPrefix]"
}
},
{
"name": "[parameters('vNetSettings').subnets[1].name]",
"properties": {
"addressPrefix": "[parameters('vNetSettings').subnets[1].addressPrefix]"
}
}
]
}
}
]
}
Örnek Şablonlar
Aşağıdaki örneklerde, parametreleri kullanmaya yönelik senaryolar gösterilmektedir.
| Şablon | Description |
|---|---|
| Varsayılan değerler için işlevlere sahip parametreler | Parametreler için varsayılan değerleri tanımlarken şablon işlevlerinin nasıl kullanılacağını gösterir. Şablon hiçbir kaynak dağıtmaz. Parametre değerlerini oluşturur ve bu değerleri döndürür. |
| Parameter nesnesi | Bir parametre için bir nesne kullanmayı gösterir. Şablon hiçbir kaynak dağıtmaz. Parametre değerlerini oluşturur ve bu değerleri döndürür. |
Sonraki adımlar
- Parametrelerin kullanılabilir özellikleri hakkında bilgi edinmek için bkz. ARM şablonlarının yapısını ve sözdizimini anlayın.
- Parametre değerlerini bir dosya olarak geçirme hakkında bilgi edinmek için bkz. Kaynak Yöneticisi parametre dosyası oluşturma.
- Parametreleri oluşturma hakkında öneriler için bkz. en iyi yöntemler-parametreler.