Funkce nasazení pro šablony ARM
Resource Manager poskytuje následující funkce pro získání hodnot souvisejících s aktuálním nasazením šablony Azure Resource Manageru (šablona ARM):
Pokud chcete získat hodnoty z prostředků, skupin prostředků nebo předplatných, podívejte se na funkce prostředků.
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Funkce nasazení .
nasazení
deployment()
Vrátí informace o aktuální operaci nasazení.
V Bicep použijte funkci nasazení .
Vrácená hodnota
Tato funkce vrátí objekt, který se předává během nasazení. Vlastnosti vráceného objektu se liší podle toho, jestli jste:
- nasazení šablony nebo specifikace šablony
- nasazení šablony, která je místním souborem nebo nasazením šablony, která je vzdáleným souborem přístupným prostřednictvím identifikátoru URI.
- nasazení do skupiny prostředků nebo nasazení do jednoho z dalších oborů (předplatné Azure, skupina pro správu nebo tenant).
Při nasazování místní šablony do skupiny prostředků vrátí funkce následující formát:
{
"name": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Při nasazování vzdálené šablony do skupiny prostředků vrátí funkce následující formát:
{
"name": "",
"properties": {
"templateLink": {
"uri": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Při nasazování specifikace šablony do skupiny prostředků vrátí funkce následující formát:
{
"name": "",
"properties": {
"templateLink": {
"id": ""
},
"template": {
"$schema": "",
"contentVersion": "",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Když nasadíte do předplatného Azure, skupiny pro správu nebo tenanta, návratový objekt obsahuje location
vlastnost. Vlastnost umístění je součástí nasazení místní šablony nebo externí šablony. Formát je následující:
{
"name": "",
"location": "",
"properties": {
"template": {
"$schema": "",
"contentVersion": "",
"resources": [],
"outputs": {}
},
"templateHash": "",
"parameters": {},
"mode": "",
"provisioningState": ""
}
}
Při nasazování šablony deployment
languageVersion 2.0 vrátí funkce omezenou podmnožinu vlastností:
{
"name": "",
"location": "",
"properties": {
"template": {
"contentVersion": ""
},
"templateLink": {
"id": "",
"uri": ""
}
}
}
Poznámky
Můžete použít deployment()
propojení s jinou šablonou na základě identifikátoru URI nadřazené šablony.
"variables": {
"sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}
Pokud znovu nasadíte šablonu z historie nasazení na portálu, šablona se nasadí jako místní soubor. Vlastnost templateLink
není vrácena ve funkci nasazení. Pokud se vaše šablona spoléhá na templateLink
vytvoření odkazu na jinou šablonu, nepoužívejte portál k opětovnému nasazení. Místo toho použijte příkazy, které jste použili k původnímu nasazení šablony.
Příklad
Následující příklad vrátí objekt nasazení.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "object",
"value": "[deployment()]"
}
}
}
Předchozí příklad vrátí následující objekt:
{
"name": "deployment",
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"deploymentOutput": {
"type": "Object",
"value": "[deployment()]"
}
}
},
"templateHash": "13135986259522608210",
"parameters": {},
"mode": "Incremental",
"provisioningState": "Accepted"
}
}
V případě nasazení předplatného vrátí následující příklad objekt nasazení.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {
"exampleOutput": {
"type": "object",
"value": "[deployment()]"
}
}
}
prostředí
environment()
Vrátí informace o prostředí Azure použitém k nasazení. Funkce environment()
nezná konfigurace prostředků. Může vrátit pouze jednu výchozí příponu DNS pro každý typ prostředku.
V Bicep použijte funkci prostředí .
Poznámky
Pokud chcete zobrazit seznam registrovaných prostředí pro váš účet, použijte příkaz az cloud list nebo Get-AzEnvironment.
Vrácená hodnota
Tato funkce vrací vlastnosti pro aktuální prostředí Azure. Následující příklad ukazuje vlastnosti globálního Azure. Suverénní cloudy můžou vracet mírně odlišné vlastnosti.
{
"name": "",
"gallery": "",
"graph": "",
"portal": "",
"graphAudience": "",
"activeDirectoryDataLake": "",
"batch": "",
"media": "",
"sqlManagement": "",
"vmImageAliasDoc": "",
"resourceManager": "",
"authentication": {
"loginEndpoint": "",
"audiences": [
"",
""
],
"tenant": "",
"identityProvider": ""
},
"suffixes": {
"acrLoginServer": "",
"azureDatalakeAnalyticsCatalogAndJob": "",
"azureDatalakeStoreFileSystem": "",
"azureFrontDoorEndpointSuffix": "",
"keyvaultDns": "",
"sqlServerHostname": "",
"storage": ""
}
}
Příklad
Následující příklad šablony vrátí objekt prostředí.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"environmentOutput": {
"type": "object",
"value": "[environment()]"
}
}
}
Předchozí příklad vrátí následující objekt při nasazení do globálního Azure:
{
"name": "AzureCloud",
"gallery": "https://gallery.azure.com/",
"graph": "https://graph.windows.net/",
"portal": "https://portal.azure.com",
"graphAudience": "https://graph.windows.net/",
"activeDirectoryDataLake": "https://datalake.azure.net/",
"batch": "https://batch.core.windows.net/",
"media": "https://rest.media.azure.net",
"sqlManagement": "https://management.core.windows.net:8443/",
"vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
"resourceManager": "https://management.azure.com/",
"authentication": {
"loginEndpoint": "https://login.microsoftonline.com/",
"audiences": [
"https://management.core.windows.net/",
"https://management.azure.com/"
],
"tenant": "common",
"identityProvider": "AAD"
},
"suffixes": {
"acrLoginServer": ".azurecr.io",
"azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
"azureDatalakeStoreFileSystem": "azuredatalakestore.net",
"azureFrontDoorEndpointSuffix": "azurefd.net",
"keyvaultDns": ".vault.azure.net",
"sqlServerHostname": ".database.windows.net",
"storage": "core.windows.net"
}
}
parametry
parameters(parameterName)
Vrátí hodnotu parametru. Zadaný název parametru musí být definován v části parametrů šablony.
V Bicep přímo odkazují na parametry pomocí jejich symbolických názvů.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
parameterName | Ano | string | Název parametru, který se má vrátit. |
Vrácená hodnota
Hodnota zadaného parametru.
Poznámky
K nastavení hodnot prostředků se obvykle používají parametry. Následující příklad nastaví název webu na hodnotu parametru předanou během nasazení.
"parameters": {
"siteName": {
"type": "string"
}
}, "resources": [
{
"type": "Microsoft.Web/Sites",
"apiVersion": "2016-08-01",
"name": "[parameters('siteName')]",
...
}
]
Příklad
Následující příklad ukazuje zjednodušené použití funkce parametrů.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"stringParameter": {
"type": "string",
"defaultValue": "option 1"
},
"intParameter": {
"type": "int",
"defaultValue": 1
},
"objectParameter": {
"type": "object",
"defaultValue": {
"one": "a",
"two": "b"
}
},
"arrayParameter": {
"type": "array",
"defaultValue": [ 1, 2, 3 ]
},
"crossParameter": {
"type": "string",
"defaultValue": "[parameters('stringParameter')]"
}
},
"variables": {},
"resources": [],
"outputs": {
"stringOutput": {
"type": "string",
"value": "[parameters('stringParameter')]"
},
"intOutput": {
"type": "int",
"value": "[parameters('intParameter')]"
},
"objectOutput": {
"type": "object",
"value": "[parameters('objectParameter')]"
},
"arrayOutput": {
"type": "array",
"value": "[parameters('arrayParameter')]"
},
"crossOutput": {
"type": "string",
"value": "[parameters('crossParameter')]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
stringOutput | String | možnost 1 |
intOutput | Int | 0 |
objectOutput | Object | {"one": "a", "two": "b"} |
arrayOutput | Pole | [1, 2, 3] |
crossOutput | String | možnost 1 |
Další informace o použití parametrů naleznete v tématu Parametry v šablonách ARM.
proměnné
variables(variableName)
Vrátí hodnotu proměnné. Zadaný název proměnné musí být definován v oddílu proměnných šablony.
V Bicep přímo odkazují na proměnné pomocí jejich symbolických názvů.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
variableName | Ano | String | Název proměnné, která se má vrátit. |
Vrácená hodnota
Hodnota zadané proměnné.
Poznámky
K zjednodušení šablony obvykle používáte proměnné tak, že vytváříte složité hodnoty pouze jednou. Následující příklad vytvoří jedinečný název pro účet úložiště.
"variables": {
"storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
},
{
"type": "Microsoft.Compute/virtualMachines",
"dependsOn": [
"[variables('storageName')]"
],
...
}
],
Příklad
Následující příklad vrátí různé hodnoty proměnných.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {
"var1": "myVariable",
"var2": [ 1, 2, 3, 4 ],
"var3": "[ variables('var1') ]",
"var4": {
"property1": "value1",
"property2": "value2"
}
},
"resources": [],
"outputs": {
"exampleOutput1": {
"type": "string",
"value": "[variables('var1')]"
},
"exampleOutput2": {
"type": "array",
"value": "[variables('var2')]"
},
"exampleOutput3": {
"type": "string",
"value": "[variables('var3')]"
},
"exampleOutput4": {
"type": "object",
"value": "[variables('var4')]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
exampleOutput1 | String | myVariable |
exampleOutput2 | Pole | [1, 2, 3, 4] |
exampleOutput3 | String | myVariable |
exampleOutput4 | Object | {"property1": "value1", "property2": "value2"} |
Další informace o používání proměnných najdete v tématu Proměnné v šabloně ARM.
Další kroky
- Popis oddílů v šabloně ARM najdete v tématu Vysvětlení struktury a syntaxe šablon ARM.