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 Manager (šablona ARM):
Pokud chcete získat hodnoty z prostředků, skupin prostředků nebo předplatných, přečtěte si téma Funkce prostředků.
Tip
Doporučujeme Bicep , protože nabízí stejné funkce 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 nástroji 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ší v závislosti na tom, jestli jste:
- nasazení šablony nebo specifikace šablony.
- nasazení šablony, která je místním souborem, nebo nasazení šablony, která je vzdáleným souborem, ke kterému se přistupuje prostřednictvím identifikátoru URI.
- nasazení do skupiny prostředků nebo nasazení do některého 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": ""
}
}
Při nasazení do předplatného Azure, skupiny pro správu nebo tenanta obsahuje návratový location
objekt vlastnost. Vlastnost location je zahrnuta při nasazování místní nebo externí šablony. Formát je:
{
"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()
k 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, nasadí se jako místní soubor. Vlastnost templateLink
se ve funkci nasazení nevrátí. Pokud se vaše šablona spoléhá na vytvoření odkazu na templateLink
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 následující příklad vrátí 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()]"
}
}
}
environment
environment()
Vrátí informace o prostředí Azure použitém k nasazení.
V nástroji 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"
}
}
parameters
parameters(parameterName)
Vrátí hodnotu parametru. Zadaný název parametru musí být definován v části parameters šablony.
V Bicepu přímo odkazovat na parametry pomocí jejich symbolických názvů.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
Parametername | Yes | řetězec | Název parametru, který se má vrátit. |
Vrácená hodnota
Hodnota zadaného parametru.
Poznámky
Obvykle se k nastavení hodnot prostředků 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 parameters.
{
"$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:
Název | Typ | Hodnota |
---|---|---|
stringOutput | Řetězec | možnost 1 |
intOutput | Int | 1 |
objectOutput | Objekt | {"one": "a", "two": "b"} |
arrayOutput | Pole | [1, 2, 3] |
crossOutput | Řetězec | možnost 1 |
Další informace o používání parametrů najdete 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 části variables šablony.
V nástroji Bicep můžete přímo odkazovat na proměnné pomocí jejich symbolických názvů.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
název_proměnné | Ano | Řetězec | Název proměnné, která se má vrátit. |
Vrácená hodnota
Hodnota zadané proměnné.
Poznámky
Proměnné se obvykle používají ke zjednodušení šablony tím, že komplexní hodnoty sestavíte pouze jednou. Následující příklad vytvoří jedinečný název účtu ú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:
Název | Typ | Hodnota |
---|---|---|
exampleOutput1 | Řetězec | myVariable |
exampleOutput2 | Pole | [1, 2, 3, 4] |
exampleOutput3 | Řetězec | myVariable |
exampleOutput4 | Objekt | {"vlastnost1": "hodnota1", "vlastnost2": "hodnota2"} |
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.