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 deploymentlanguageVersion 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