Freigeben über


Bereitstellungsfunktionen für ARM-Vorlagen

Azure Resource Manager bietet die folgenden Funktionen zum Abrufen von Werten im Zusammenhang mit der aktuellen Bereitstellung Ihrer Azure Resource Manager-Vorlage (ARM-Vorlage):

Informationen zum Abrufen von Werten aus Ressourcen, Ressourcengruppen oder Abonnements finden Sie unter Ressourcenfunktionen.

Tip

Bicep wird empfohlen, da sie dieselben Funktionen wie ARM-Vorlagen bietet und die Syntax einfacher zu verwenden ist. Weitere Informationen finden Sie unter deployment Funktionen.

deployer

deployer()

Gibt die Informationen zum aktuellen Bereitstellungsprinzipal zurück.

Verwenden Sie in Bicep die deployer Funktion.

Rückgabewert

Diese Funktion gibt die Informationen zum aktuellen Bereitstellungsprinzipal zurück, einschließlich Mandanten-ID, Objekt-ID und Benutzerprinzipalname:

{
  "objectId": "",
  "tenantId": "",
  "userPrincipalName": ""
}

Example

Im folgenden Beispiel wird das Deployer-Objekt zurückgegeben:

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

Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

deployment

deployment()

Gibt Informationen zum aktuellen Bereitstellungsvorgang zurück.

Verwenden Sie in Bicep die deployment Funktion.

Rückgabewert

Diese Funktion gibt das Objekt zurück, das während der Bereitstellung übergeben wird. Die Eigenschaften im zurückgegebenen Objekt unterscheiden sich je nachdem, ob Sie:

  • Bereitstellen einer Vorlage oder einer Vorlagenspezifikation.
  • Bereitstellen einer Vorlage, die eine lokale Datei ist oder eine Vorlage bereitstellt, auf die über einen URI zugegriffen wird.
  • Bereitstellen in einer Ressourcengruppe oder Bereitstellung in einem der anderen Bereiche (Azure-Abonnement, Verwaltungsgruppen oder Mandanten).

Wenn Sie eine lokale Vorlage in einer Ressourcengruppe bereitstellen, gibt die Funktion das folgende Format zurück:

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

Wenn die Vorlage remote ist, wird die templateLink Eigenschaft im zurückgegebenen Objekt enthalten. Die templateLink Eigenschaft enthält den URI der Vorlage. Das Format lautet:

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

Weitere Informationen finden Sie unter Verwenden von Variablen zum Verknüpfen von Vorlagen.

Bei der Bereitstellung einer Vorlagenspezifikation in einer Ressourcengruppe gibt die Funktion das folgende Format zurück:

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

Wenn Sie in einem Azure-Abonnement, einer Verwaltungsgruppe oder einem Mandanten bereitstellen, enthält das Rückgabeobjekt eine location-Eigenschaft. Die location-Eigenschaft ist beim Bereitstellen einer lokalen Vorlage oder einer externen Vorlage enthalten. Das Format lautet:

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

Bei der Bereitstellung einer LanguageVersion 2.0-Vorlage gibt die deployment Funktion eine begrenzte Teilmenge von Eigenschaften zurück:

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

Die location Eigenschaft ist nur für Bereitstellungen im Abonnement-, Verwaltungsgruppen- oder Mandantenbereich enthalten. Die templateLink Eigenschaft ist nur enthalten, wenn der Benutzer eine verknüpfte Vorlage anstelle einer Inlinevorlage bereitstellt.

Remarks

Sie können einen Link zu einer anderen Vorlage basierend auf dem URI der übergeordneten Vorlage verwenden deployment() :

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

Wenn Sie eine Vorlage aus dem Bereitstellungsverlauf im Portal erneut bereitstellen, wird die Vorlage als lokale Datei bereitgestellt. Die Eigenschaft templateLink wird in der Bereitstellungsfunktion nicht zurückgegeben. Falls Ihre Vorlage templateLink benötigt, um eine Verknüpfung mit einer anderen Vorlage zu erstellen, führen Sie die erneute Bereitstellung nicht über das Portal durch. Verwenden Sie stattdessen die Befehle, die Sie bei der ursprünglichen Bereitstellung der Vorlage verwendet haben.

Example

Im folgenden Beispiel wird ein Bereitstellungsobjekt zurückgegeben:

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

Im vorherigen Beispiel wird das folgende Objekt zurückgegeben:

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

Für eine Abonnementbereitstellung gibt das folgende Beispiel ein Bereitstellungsobjekt zurück:

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

Gibt Informationen zur für die Bereitstellung verwendeten Azure-Umgebung zurück. Die environment() Funktion kennt keine Ressourcenkonfigurationen. Es kann nur ein einzelnes Standard-DNS-Suffix für jeden Ressourcentyp zurückgeben.

Verwenden Sie in Bicep die environment Funktion.

Remarks

Um eine Liste der registrierten Umgebungen für Ihr Konto anzuzeigen, verwenden az cloud list oder Get-AzEnvironment.

Rückgabewert

Diese Funktion gibt Eigenschaften für die aktuelle Azure-Umgebung zurück. Das folgende Beispiel zeigt die Eigenschaften für globale Azure; Souveräne Clouds können leicht unterschiedliche Eigenschaften zurückgeben:

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

Example

Die folgende Beispielvorlage gibt das Umgebungsobjekt zurück:

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

Im vorherigen Beispiel wird bei Bereitstellung in globalem Azure das folgende Objekt zurückgegeben:

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

Gibt einen Parameterwert zurück. Der angegebene Parametername muss im Parameterabschnitt der Vorlage definiert werden.

Verweisen Sie in Bicep mithilfe ihrer symbolischen Namen direkt auf Parameter .

Parameters

Parameter Required Type Description
parameterName Yes string Der Name des zurückzugebenden Parameter.

Rückgabewert

Der Wert des angegebenen Parameters.

Remarks

In der Regel verwenden Sie Parameter zum Festlegen von Ressourcenwerten. Im folgenden Beispiel wird der Name der Website mit dem Parameterwert festgelegt, der während der Bereitstellung übergeben wird.

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

Example

Das folgende Beispiel zeigt eine vereinfachte Verwendung der parameters Funktion:

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

Die Ausgabe der Standardwerte aus dem vorherigen Beispiel lautet:

Name Type Value
stringOutput String Option 1
intOutput Int 1
objectOutput Object {"one": "a", "two": "b"}
arrayOutput Array [1, 2, 3]
crossOutput String Option 1

Weitere Informationen zur Verwendung von Parametern finden Sie unter Parameter in ARM-Vorlagen.

variables

variables(variableName)

Gibt den Wert einer Variablen zurück. Der angegebene Variablenname muss im Variablenabschnitt der Vorlage definiert werden.

Verweisen Sie in Bicep mithilfe ihrer symbolischen Namen direkt auf Variablen .

Parameters

Parameter Required Type Description
variableName Yes String Der Name der zurückzugebenden Variable.

Rückgabewert

Der Wert der angegebenen Variablen.

Remarks

In der Regel verwenden Sie Variablen, um Ihre Vorlage zu vereinfachen, indem Sie komplexe Werte nur einmal erstellen. Im folgenden Beispiel wird ein eindeutiger Name für ein Speicherkonto erstellt:

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

Example

Im folgenden Beispiel werden unterschiedliche Variablenwerte zurückgegeben:

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

Die Ausgabe der Standardwerte aus dem vorherigen Beispiel lautet:

Name Type Value
exampleOutput1 String myVariable
exampleOutput2 Array [1, 2, 3, 4]
exampleOutput3 String myVariable
exampleOutput4 Object {"property1": "value1", "property2": "value2"}

Weitere Informationen zur Verwendung von Variablen finden Sie unter Variablen in der ARM-Vorlage.

Nächste Schritte

Weitere Informationen zu den Abschnitten in einer ARM-Vorlage finden Sie in der Struktur und Syntax von ARM-Vorlagen.