Parametrar i ARM-mallar
Den här artikeln beskriver hur du definierar och använder parametrar i din Azure Resource Manager mall (ARM-mall). Genom att ange olika värden för parametrar kan du återanvända en mall för olika miljöer.
Resource Manager matchar parametervärden innan distributionsåtgärder startas. Oavsett var parametern används i mallen Resource Manager den med det lösta värdet.
Varje parameter måste anges till en av datatyperna.
Minimal deklaration
Varje parameter måste minst ha ett namn och en typ.
När du distribuerar en mall via Azure Portal omvandlas kamelarts parameternamn till blankstegsavgränsade namn. Till exempel visas demoString i följande exempel som demosträng. Mer information finns i Använda en distributionsknapp för att distribuera mallar från GitHub-lagringsplatsen och Distribuera resurser med ARM-mallar och Azure Portal.
"parameters": {
"demoString": {
"type": "string"
},
"demoInt": {
"type": "int"
},
"demoBool": {
"type": "bool"
},
"demoObject": {
"type": "object"
},
"demoArray": {
"type": "array"
}
}
Säkra parametrar
Du kan markera sträng- eller objektparametrar som säkra. Värdet för en säker parameter sparas inte i distributionshistoriken och loggas inte.
"parameters": {
"demoPassword": {
"type": "secureString"
},
"demoSecretObject": {
"type": "secureObject"
}
}
Tillåtna värden
Du kan definiera tillåtna värden för en parameter. Du anger de tillåtna värdena i en matris. Distributionen misslyckas under valideringen om ett värde skickas för parametern som inte är ett av de tillåtna värdena.
"parameters": {
"demoEnum": {
"type": "string",
"allowedValues": [
"one",
"two"
]
}
}
Standardvärde
Du kan ange ett standardvärde för en parameter. Standardvärdet används när ett värde inte anges under distributionen.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso"
}
}
Om du vill ange ett standardvärde tillsammans med andra egenskaper för parametern använder du följande syntax.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso",
"allowedValues": [
"Contoso",
"Fabrikam"
]
}
}
Du kan använda uttryck med standardvärdet. Du kan inte använda referensfunktionen eller någon av listfunktionerna i parameteravsnittet. Dessa funktioner hämtar körningstillståndet för en resurs och kan inte köras innan distributionen när parametrarna har lösts.
Uttryck tillåts inte med andra parameteregenskaper.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Du kan använda ett annat parametervärde för att skapa ett standardvärde. Följande mall skapar ett värdplansnamn från platsnamnet.
"parameters": {
"siteName": {
"type": "string",
"defaultValue": "[concat('site', uniqueString(resourceGroup().id))]"
},
"hostingPlanName": {
"type": "string",
"defaultValue": "[concat(parameters('siteName'),'-plan')]"
}
}
Längdbegränsningar
Du kan ange minsta och högsta längd för sträng- och matrisparametrar. Du kan ange en eller båda begränsningarna. För strängar anger längden antalet tecken. För matriser anger längden antalet objekt i matrisen.
I följande exempel deklareras två parametrar. En parameter är för ett lagringskontonamn som måste innehålla mellan 3 och 24 tecken. Den andra parametern är en matris som måste ha mellan 1 och 5 objekt.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"appNames": {
"type": "array",
"minLength": 1,
"maxLength": 5
}
}
Heltalsbegränsningar
Du kan ange lägsta och högsta värden för heltalsparametrar. Du kan ange en eller båda begränsningarna.
"parameters": {
"month": {
"type": "int",
"minValue": 1,
"maxValue": 12
}
}
Description
Du kan lägga till en beskrivning i en parameter för att hjälpa användare av mallen att förstå värdet som ska anges. När du distribuerar mallen via portalen används den text som du anger i beskrivningen automatiskt som ett tips för den parametern. Lägg bara till en beskrivning när texten ger mer information än vad som kan härledas från parameternamnet.
"parameters": {
"virtualMachineSize": {
"type": "string",
"metadata": {
"description": "Must be at least Standard_A3 to support 2 NICs."
},
"defaultValue": "Standard_DS1_v2"
}
}
Använd parameter
Om du vill referera till en parameters värde använder du parameterfunktionen . I följande exempel används ett parametervärde för ett nyckelvalvsnamn.
{
"$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')]",
...
}
]
}
Objekt som parametrar
Du kan ordna relaterade värden genom att skicka dem som ett objekt. Den här metoden minskar också antalet parametrar i mallen.
I följande exempel visas en parameter som är ett -objekt. Standardvärdet visar förväntade egenskaper för objektet. Dessa egenskaper används när du definierar resursen som ska distribueras.
{
"$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]"
}
}
]
}
}
]
}
Exempelmallar
I följande exempel visas scenarier för att använda parametrar.
| Mall | Description |
|---|---|
| parametrar med funktioner för standardvärden | Visar hur du använder mallfunktioner när du definierar standardvärden för parametrar. Mallen distribuerar inga resurser. Den konstruerar parametervärden och returnerar dessa värden. |
| parameterobjekt | Visar hur du använder ett -objekt för en parameter. Mallen distribuerar inga resurser. Den konstruerar parametervärden och returnerar dessa värden. |
Nästa steg
- Mer information om tillgängliga egenskaper för parametrar finns i Förstå strukturen och syntaxen för ARM-mallar.
- Mer information om hur du anger parametervärden som en fil finns i Skapa Resource Manager parameterfil.
- Rekommendationer om hur du skapar parametrar finns i Metodtips – parametrar.