Megosztás a következőn keresztül:


Üzembehelyezési függvények ARM-sablonokhoz

A Resource Manager az alábbi függvényeket biztosítja az Azure Resource Manager-sablon (ARM-sablon) aktuális üzembe helyezéséhez kapcsolódó értékek lekéréséhez:

Az erőforrások, erőforráscsoportok vagy előfizetések értékeinek lekéréséhez tekintse meg az Erőforrásfüggvényeket.

Tipp.

A Bicep használatát javasoljuk, mert ugyanazokkal a képességekkel rendelkezik, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információkért tekintse meg az üzembehelyezési függvényeket.

üzembe helyezés

deployment()

Az aktuális üzembe helyezési művelettel kapcsolatos információkat adja vissza.

A Bicepben használja az üzembe helyezési függvényt.

Visszaadott érték

Ez a függvény az üzembe helyezés során átadott objektumot adja vissza. A visszaadott objektum tulajdonságai a következőktől függően különböznek:

  • sablon vagy sablon specifikáció üzembe helyezése.
  • egy helyi fájlból származó sablon üzembe helyezése vagy egy URI-val elért távoli fájlból származó sablon üzembe helyezése.
  • üzembe helyezés egy erőforráscsoportban, vagy üzembe helyezés az egyik másik hatókörben (Azure-előfizetés, felügyeleti csoport vagy bérlő).

Helyi sablon erőforráscsoportban való üzembe helyezésekor a függvény a következő formátumot adja vissza:

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

Távoli sablon erőforráscsoportba való telepítésekor a függvény a következő formátumot adja vissza:

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

Sablon specifikációjának erőforráscsoportban való üzembe helyezésekor a függvény a következő formátumot adja vissza:

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

Azure-előfizetésben, felügyeleti csoportban vagy bérlőben történő üzembe helyezéskor a visszatérési objektum tartalmaz egy tulajdonságot location . A helytulajdonság helyi vagy külső sablon üzembe helyezésekor szerepel. A formátum a következő:

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

LanguageVersion 2.0-sablon üzembe helyezésekor a függvény a deployment tulajdonságok egy korlátozott részhalmazát adja vissza:

{
  "name": "",
  "location": "",
  "properties": {
    "template": {
      "contentVersion": ""
    },
    "templateLink": {
      "id": "",
      "uri": ""
    }
  }
}

Megjegyzések

A szülősablon URI-ja alapján hivatkozhat deployment() egy másik sablonra.

"variables": {
  "sharedTemplateUrl": "[uri(deployment().properties.templateLink.uri, 'shared-resources.json')]"
}

Ha újra üzembe helyez egy sablont a portál üzembe helyezési előzményeiből, a sablon helyi fájlként lesz üzembe helyezve. A templateLink tulajdonság nem lesz visszaadva az üzembe helyezési függvényben. Ha a sablon egy másik sablonra mutató hivatkozás létrehozására templateLink támaszkodik, ne használja a portált az újbóli üzembe helyezéshez. Ehelyett használja a sablon eredeti üzembe helyezéséhez használt parancsokat.

Példa

Az alábbi példa egy üzembehelyezési objektumot ad vissza.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "deploymentOutput": {
      "type": "object",
      "value": "[deployment()]"
    }
  }
}

Az előző példa a következő objektumot adja vissza:

{
  "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"
  }
}

Előfizetések üzembe helyezése esetén az alábbi példa egy üzembehelyezési objektumot ad vissza.

{
  "$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()]"
    }
  }
}

környezet

environment()

Az üzembe helyezéshez használt Azure-környezettel kapcsolatos információkat adja vissza. A environment() függvény nem ismeri az erőforrás-konfigurációkat. Csak egyetlen alapértelmezett DNS-utótagot tud visszaadni az egyes erőforrástípusokhoz.

A Bicepben használja a környezeti függvényt.

Megjegyzések

A fiókhoz tartozó regisztrált környezetek listájának megtekintéséhez használja az az cloud listát vagy a Get-AzEnvironmentet.

Visszaadott érték

Ez a függvény az aktuális Azure-környezet tulajdonságait adja vissza. Az alábbi példa a globális Azure tulajdonságait mutatja be. A szuverén felhők némileg eltérő tulajdonságokat adhatnak vissza.

{
  "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élda

Az alábbi példasablon a környezeti objektumot adja vissza.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "environmentOutput": {
      "type": "object",
      "value": "[environment()]"
    }
  }
}

Az előző példa a következő objektumot adja vissza a globális Azure-ban való üzembe helyezéskor:

{
  "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)

Paraméterértéket ad vissza. A megadott paraméternevet a sablon paraméterek szakaszában kell definiálni.

A Bicepben közvetlenül hivatkozzon a paraméterekre szimbolikus nevük használatával.

Paraméterek

Paraméter Kötelező Típus Leírás
parameterName Igen húr A visszaadni kívánt paraméter neve.

Visszaadott érték

A megadott paraméter értéke.

Megjegyzések

Általában paraméterekkel állítja be az erőforrásértékeket. Az alábbi példa a webhely nevét az üzembe helyezés során átadott paraméterértékre állítja.

"parameters": {
  "siteName": {
    "type": "string"
  }
}, "resources": [
  {
    "type": "Microsoft.Web/Sites",
    "apiVersion": "2016-08-01",
    "name": "[parameters('siteName')]",
    ...
  }
]

Példa

Az alábbi példa a paraméterfüggvény egyszerűsített használatát mutatja be.

{
  "$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')]"
    }
  }
}

Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:

Név Típus Érték
stringOutput Sztring 1. lehetőség
intOutput Int 0
objectOutput Objektum {"one": "a", "two": "b"}
arrayOutput Tömb [1, 2, 3]
crossOutput Sztring 1. lehetőség

További információ a paraméterek használatáról: Paraméterek ARM-sablonokban.

változók

variables(variableName)

A változó értékét adja vissza. A megadott változónevet a sablon változók szakaszában kell meghatározni.

A Bicepben közvetlenül hivatkozzon a változókra szimbolikus nevük használatával.

Paraméterek

Paraméter Kötelező Típus Leírás
variableName Igen Sztring A visszaadni kívánt változó neve.

Visszaadott érték

A megadott változó értéke.

Megjegyzések

Általában változókkal egyszerűsítheti a sablont, ha összetett értékeket csak egyszer hoz létre. Az alábbi példa egy tárfiók egyedi nevét hozza létre.

"variables": {
  "storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
},
"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  },
  {
    "type": "Microsoft.Compute/virtualMachines",
    "dependsOn": [
      "[variables('storageName')]"
    ],
    ...
  }
],

Példa

Az alábbi példa különböző változóértékeket ad vissza.

{
  "$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')]"
    }
  }
}

Az előző példában szereplő kimenet az alapértelmezett értékekkel a következő:

Név Típus Érték
exampleOutput1 Sztring myVariable
exampleOutput2 Tömb [1, 2, 3, 4]
exampleOutput3 Sztring myVariable
exampleOutput4 Objektum {"property1": "value1", "property2": "value2"}

A változók használatáról további információt az ARM-sablon változói című témakörben talál.

Következő lépések