Parametry v šablonách ARM
Tento článek popisuje, jak definovat a používat parametry v šabloně Azure Resource Manager (šablona ARM). Když pro parametry zadáte různé hodnoty, můžete šablonu znovu použít pro různá prostředí.
Resource Manager před zahájením operací nasazení překládá hodnoty parametrů. Bez ohledu na to, kde se v Resource Manager používá parametr , ho nahradí přeloženou hodnotou.
Každý parametr musí být nastavený na jeden z datových typů.
Minimální deklarace
Každý parametr vyžaduje minimálně název a typ.
Když nasadíte šablonu prostřednictvím Azure Portal, názvy parametrů ve camel-casedu se převedou na názvy oddělené mezerami. Například demoString v následujícím příkladu je zobrazený jako Ukázkový řetězec. Další informace najdete v tématu Použití tlačítka nasazení k nasazení šablon z GitHub úložiště a Nasazení prostředků pomocí šablon ARM a Azure Portal.
"parameters": {
"demoString": {
"type": "string"
},
"demoInt": {
"type": "int"
},
"demoBool": {
"type": "bool"
},
"demoObject": {
"type": "object"
},
"demoArray": {
"type": "array"
}
}
Zabezpečené parametry
Parametry řetězce nebo objektu můžete označit jako zabezpečené. Hodnota parametru secure se neuloží do historie nasazení a nezaprotokoluje se.
"parameters": {
"demoPassword": {
"type": "secureString"
},
"demoSecretObject": {
"type": "secureObject"
}
}
Povolené hodnoty
Pro parametr můžete definovat povolené hodnoty. Povolené hodnoty zadáte v poli. Nasazení během ověřování selže, pokud se předá hodnota parametru , který není jednou z povolených hodnot.
"parameters": {
"demoEnum": {
"type": "string",
"allowedValues": [
"one",
"two"
]
}
}
Výchozí hodnota
Můžete zadat výchozí hodnotu parametru. Výchozí hodnota se použije, když se během nasazení nezadá hodnota.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso"
}
}
Pokud chcete zadat výchozí hodnotu spolu s dalšími vlastnostmi parametru, použijte následující syntaxi.
"parameters": {
"demoParam": {
"type": "string",
"defaultValue": "Contoso",
"allowedValues": [
"Contoso",
"Fabrikam"
]
}
}
Můžete použít výrazy s výchozí hodnotou. V oddílu parameters nemůžete použít referenční funkci ani žádnou z funkcí seznamu. Tyto funkce zobrazí stav modulu runtime prostředku a nelze je spustit před nasazením, když jsou parametry vyřešeny.
Výrazy nejsou povoleny s jinými vlastnostmi parametru.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
K vytvoření výchozí hodnoty můžete použít jinou hodnotu parametru. Následující šablona vytvoří název plánu hostitele z názvu lokality.
"parameters": {
"siteName": {
"type": "string",
"defaultValue": "[concat('site', uniqueString(resourceGroup().id))]"
},
"hostingPlanName": {
"type": "string",
"defaultValue": "[concat(parameters('siteName'),'-plan')]"
}
}
Omezení délky
Pro parametry řetězce a pole můžete zadat minimální a maximální délku. Můžete nastavit jedno nebo obě omezení. U řetězců určuje délka počet znaků. U polí určuje délka počet položek v poli.
Následující příklad deklaruje dva parametry. Jeden parametr je pro název účtu úložiště, který musí mít 3 až 24 znaků. Druhý parametr je pole, které musí mít 1 až 5 položek.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"appNames": {
"type": "array",
"minLength": 1,
"maxLength": 5
}
}
Omezení celočíselných čísel
Pro celočíselné parametry můžete nastavit minimální a maximální hodnoty. Můžete nastavit jedno nebo obě omezení.
"parameters": {
"month": {
"type": "int",
"minValue": 1,
"maxValue": 12
}
}
Popis
Do parametru můžete přidat popis, který uživatelům šablony pomůže pochopit hodnotu, kterou mají zadat. Při nasazování šablony prostřednictvím portálu se text, který v popisu zadáte, automaticky použije jako tip pro tento parametr. Popis přidejte pouze v případě, že text poskytuje více informací, než lze odvodit z názvu parametru.
"parameters": {
"virtualMachineSize": {
"type": "string",
"metadata": {
"description": "Must be at least Standard_A3 to support 2 NICs."
},
"defaultValue": "Standard_DS1_v2"
}
}
Použití parametru
Pokud chcete odkazovat na hodnotu parametru, použijte funkci parameters. Následující příklad používá hodnotu parametru pro název trezoru klíčů.
{
"$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')]",
...
}
]
}
Objekty jako parametry
Související hodnoty můžete uspořádat tak, že je předáte jako objekt. Tento přístup také snižuje počet parametrů v šabloně.
Následující příklad ukazuje parametr , který je objektem. Výchozí hodnota zobrazuje očekávané vlastnosti objektu. Tyto vlastnosti se používají při definování prostředku, který se má nasadit.
{
"$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]"
}
}
]
}
}
]
}
Příklady šablon
Následující příklady ukazují scénáře použití parametrů.
| Template (Šablona) | Popis |
|---|---|
| Parametry s funkcemi pro výchozí hodnoty | Demonstruje způsob použití funkcí šablony při definování výchozích hodnot pro parametry. Šablona nenasadí žádné prostředky. Sestaví hodnoty parametrů a vrátí tyto hodnoty. |
| parameter – objekt | Demonstruje použití objektu pro parametr. Šablona nenasadí žádné prostředky. Sestaví hodnoty parametrů a vrátí tyto hodnoty. |
Další kroky
- Další informace o dostupných vlastnostech parametrů najdete v tématu Principy strukturya syntaxe šablon ARM.
- Další informace o předávání hodnot parametrů jako souboru najdete v tématu Vytvoření Resource Manager souboru parametrů.
- Doporučení týkající se vytváření parametrů najdete v tématu Osvědčené postupy – parametry.