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):

Informace o získání hodnot z prostředků, skupin prostředků nebo předplatných najdete v tématu Funkce prostředků.

nasazení

deployment()

Vrátí informace o aktuální operaci nasazení.

Vrácená hodnota

Tato funkce vrátí objekt předaný 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í š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ávunebo tenant).

Při nasazování místní šablony do skupiny prostředků: Funkce vrátí 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ů: Funkce vrátí 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ů: Funkce vrátí následující formát:

{
  "name": "",
  "properties": {
    "templateLink": {
      "id": ""
    },
    "template": {
      "$schema": "",
      "contentVersion": "",
      "parameters": {},
      "variables": {},
      "resources": [],
      "outputs": {}
    },
    "templateHash": "",
    "parameters": {},
    "mode": "",
    "provisioningState": ""
  }
}

Když nasazujete do předplatného Azure, skupiny pro správu nebo tenanta, návratový objekt obsahuje location vlastnost . Vlastnost location se zahrne do 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": ""
  }
}

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 na portálu znovu nasadíte šablonu z historie nasazení, nasadí se jako místní soubor. Vlastnost templateLink se ve funkci nasazení nevrátila. Pokud vaše šablona spoléhá na vytvoření odkazu na jinou šablonu, nepoužívejte k opětovnému nasazení templateLink portál. Místo toho použijte příkazy, které jste použili k původnímu nasazení šablony.

Příklad

Následující příklad šablony 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"
  }
}

environment

environment()

Vrátí informace o prostředí Azure použitém k nasazení.

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 mohou 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í při nasazení do globálního Azure následující objekt:

{
  "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.windows.net/",
    "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 oddílu parameters šablony.

V Bicep přímo odkazujte na parametry pomocí jejich symbolických názvů.

Parametry

Parametr Povinné Typ Description
Parametername Yes řetězec Název parametru, který chcete 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 šablony 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": {
      "value": "[parameters('stringParameter')]",
      "type": "string"
    },
    "intOutput": {
      "value": "[parameters('intParameter')]",
      "type": "int"
    },
    "objectOutput": {
      "value": "[parameters('objectParameter')]",
      "type": "object"
    },
    "arrayOutput": {
      "value": "[parameters('arrayParameter')]",
      "type": "array"
    },
    "crossOutput": {
      "value": "[parameters('crossParameter')]",
      "type": "string"
    }
  }
}

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
výstup objektu Objekt {"one": "a", "two": "b"}
arrayOutput Pole [1, 2, 3]
crossOutput (propustnost) Ř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 oddílu variables šablony.

V Bicep přímo odkazujte 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 složité 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 šablony vrací 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": {
      "value": "[variables('var1')]",
      "type": "string"
    },
    "exampleOutput2": {
      "value": "[variables('var2')]",
      "type": "array"
    },
    "exampleOutput3": {
      "value": "[variables('var3')]",
      "type": "string"
    },
    "exampleOutput4": {
      "value": "[variables('var4')]",
      "type": "object"
    }
  }
}

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
exampleOutput1 Řetězec MojePromenna
exampleOutput2 Pole [1, 2, 3, 4]
exampleOutput3 Řetězec MojePromenna
exampleOutput4 Objekt {"vlastnost1": "hodnota1"; "Vlastnost2": "hodnota2"}

Další informace o použití proměnných naleznete v tématu proměnné v ŠABLONĚ ARM.

Další kroky