Funktionen für die Verwendung mit Azure Blueprints
Wichtig
Am 11. Juli 2026 läuft Blueprints (Vorschau) aus. Migrieren Sie Ihre vorhandenen Blaupausendefinitionen und -zuweisungen zu Vorlagenspezifikationen und Bereitstellungsstapeln. Blaupausenartefakte müssen in ARM-JSON-Vorlagen oder Bicep-Dateien konvertiert werden, die zum Definieren von Bereitstellungsstapeln verwendet werden. Informationen zum Erstellen eines Artefakts als ARM-Ressource finden Sie unter:
Azure Blueprints bietet Funktionen, durch die eine Blaupausendefinition dynamischer wird. Diese Funktionen dienen zur Verwendung mit Blaupausendefinitionen und Blaupausenartefakten. Ein Artefakt einer Azure Resource Manager-Vorlage (ARM-Vorlage) unterstützt die umfassende Verwendung von Resource Manager-Funktionen zusätzlich zum Abrufen eines dynamischen Werts über einen Blaupausenparameter.
Folgende Funktionen werden unterstützt:
artifacts
artifacts(artifactName)
Gibt ein Objekt von Eigenschaften zurück, die mit den Ausgaben dieses Blaupausenartefakts aufgefüllt sind.
Hinweis
Die artifacts()
-Funktion kann nicht in einer ARM-Vorlage verwendet werden. Die-Funktion kann nur im JSON-Code der Blaupausendefinition oder des Artifakts verwendet werden, wenn die Blaupause mit Azure PowerShell oder REST-API im Rahmen von Blaupausen als Code verwaltet wird.
Parameter
Parameter | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
artifactName | Ja | Zeichenfolge | Der Name eines Blaupausenartefakts. |
Rückgabewert
Ein Objekt von Ausgabeeigenschaften. Die Ausgabeneigenschaften sind abhängig vom Typ des Blaupausenartefakts, auf das verwiesen wird. Alle Typen halten folgendes Format ein:
{
"outputs": {collectionOfOutputProperties}
}
Richtlinienzuweisungsartefakt
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
ARM-Vorlagenartefakt
Die Ausgabeneigenschaften des zurückgegebenen Objekts sind in der ARM-Vorlage definiert und werden von der Bereitstellung zurückgegeben.
Rollenzuweisungsartefakt
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Beispiel
Ein ARM-Vorlagenartefakt mit der ID myTemplateArtifact, das die folgende Beispielausgabeeigenschaft enthält:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
...
"outputs": {
"myArray": {
"type": "array",
"value": ["first", "second"]
},
"myString": {
"type": "string",
"value": "my string value"
},
"myObject": {
"type": "object",
"value": {
"myProperty": "my value",
"anotherProperty": true
}
}
}
}
Einige Beispiele für das Abrufen von Daten aus dem myTemplateArtifact-Beispiel sind:
Ausdruck | type | Wert |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Array | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
String | "first" |
[artifacts("myTemplateArtifact").outputs.myString] |
String | "my string value" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Object | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
String | "my value" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Bool | True |
concat
concat(string1, string2, string3, ...)
Kombiniert mehrere Zeichenfolgenwerte und gibt die verkettete Zeichenfolge zurück.
Parameter
Parameter | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
string1 | Ja | Zeichenfolge | Der erste Wert für die Verkettung. |
zusätzliche Argumente | Nein | Zeichenfolge | Weitere Werte in sequenzieller Reihenfolge für die Verkettung. |
Rückgabewert
Eine Zeichenfolge aus verketteten Werten.
Bemerkungen
Die Azure Blueprints-Funktion unterscheidet sich von der ARM-Vorlagenfunktion darin, dass sie nur mit Zeichenfolgen arbeitet.
Beispiel
concat(parameters('organizationName'), '-vm')
parameters
parameters(parameterName)
Gibt einen Blaupausenparameterwert zurück. Der angegebene Parametername muss in der Blaupausendefinition oder den Blaupausenartefakten definiert sein.
Parameter
Parameter | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
parameterName | Ja | Zeichenfolge | Der Name des zurückzugebenden Parameter. |
Rückgabewert
Der Wert des angegebenen Blaupausen- oder Blaupausenartefaktparameters.
Bemerkungen
Die Azure Blueprints-Funktion unterscheidet sich von der ARM-Vorlagenfunktion darin, dass sie nur mit Blaupausenparametern arbeitet.
Beispiel
Definieren des Parameters principalIds in der Blaupausendefinition:
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"parameters": {
"principalIds": {
"type": "array",
"metadata": {
"displayName": "Principal IDs",
"description": "This is a blueprint parameter that any artifact can reference. We'll display these descriptions for you in the info bubble. Supply principal IDs for the users,groups, or service principals for the Azure role assignment.",
"strongType": "PrincipalId"
}
}
},
...
}
}
Anschließende Verwendung von principalIds als Argument für parameters()
in einem Blaupausenartefakt:
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
Gibt ein Objekt zurück, das die aktuelle Ressourcengruppe darstellt.
Rückgabewert
Das zurückgegebene Objekt hat das folgende Format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Bemerkungen
Die Azure Blueprints-Funktion unterscheidet sich von der ARM-Vorlagenfunktion. Die resourceGroup()
-Funktion kann nicht in einem Artefakt der Abonnementebene oder der Blaupausendefinition verwendet werden. Sie kann nur in Blaupausenartefakten verwendet werden, die Teil eines Ressourcengruppenartefakts sind.
Die resourceGroup()
-Funktion wird häufig verwendet, um Ressourcen am gleichen Speicherort wie das Ressourcengruppenartefakt zu erstellen.
Beispiel
Um den Speicherort der Ressourcengruppe zu verwenden, der entweder in der Blaupausendefinition oder während der Zuweisung festgelegt wurde, deklarieren Sie als Speicherort für ein anderes Artefakt ein Platzhalterobjekt für eine Ressourcengruppe in Ihrer Blaupausendefinition. In diesem Beispiel ist NetworkingPlaceholder der Name des Ressourcengruppenplatzhalters.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Verwenden Sie dann die resourceGroup()
-Funktion im Kontext eines Blaupausenartefakts, das auf ein Platzhalterobjekt für eine Ressourcengruppe abzielt. In diesem Beispiel wird das Vorlagenartefakt in der NetworkingPlaceholder-Ressourcengruppe bereitgestellt und stellt den Parameter resourceLocation bereit, der mit dem Speicherort der NetworkingPlaceholder-Ressourcengruppe in der Vorlage dynamisch aufgefüllt wird. Der Speicherort der NetworkingPlaceholder-Ressourcengruppe hätte auch statisch in der Blaupausendefinition oder dynamisch während der Zuweisung definiert werden können. In beiden Fällen wird dem Vorlagenartefakt diese Information als Parameter bereitgestellt, den es verwendet, um die Ressourcen am richtigen Speicherort bereitzustellen.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
Gibt ein Objekt zurück, das das angegebene Ressourcengruppenartefakt darstellt. Im Gegensatz zu resourceGroup()
, wo der Kontext des Artefakts erforderlich ist, wird diese Funktion verwendet, um die Eigenschaften eines bestimmten Ressourcengruppenplatzhalters abzurufen, wenn sich die Funktion nicht im Kontext dieser Ressourcengruppe befindet.
Parameter
Parameter | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
placeholderName | Ja | Zeichenfolge | Der Platzhaltername des Ressourcengruppenartefakts, der zurückgegeben werden soll. |
Rückgabewert
Das zurückgegebene Objekt hat das folgende Format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Beispiel
Um den Speicherort der Ressourcengruppe zu verwenden, der entweder in der Blaupausendefinition oder während der Zuweisung festgelegt wurde, deklarieren Sie als Speicherort für ein anderes Artefakt ein Platzhalterobjekt für eine Ressourcengruppe in Ihrer Blaupausendefinition. In diesem Beispiel ist NetworkingPlaceholder der Name des Ressourcengruppenplatzhalters.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Verwenden Sie dann die resourceGroups()
-Funktion aus dem Kontext eines beliebigen Blaupausenartefakts, um einen Verweis auf das Platzhalterobjekt für die Ressourcengruppe abzurufen. In diesem Beispiel wird das Vorlagenartefakt außerhalb der NetworkingPlaceholder-Ressourcengruppe bereitgestellt und stellt den Parameter artifactLocation bereit, der mit dem Speicherort der NetworkingPlaceholder-Ressourcengruppe in der Vorlage dynamisch aufgefüllt wird. Der Speicherort der NetworkingPlaceholder-Ressourcengruppe hätte auch statisch in der Blaupausendefinition oder dynamisch während der Zuweisung definiert werden können. In beiden Fällen wird dem Vorlagenartefakt diese Information als Parameter bereitgestellt, den es verwendet, um die Ressourcen am richtigen Speicherort bereitzustellen.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Abonnement
subscription()
Gibt Details zum Abonnement für die aktuelle Blaupausenzuweisung zurück.
Rückgabewert
Das zurückgegebene Objekt hat das folgende Format:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Beispiel
Verwendung des Anzeigenamens des Abonnements und der concat()
-Funktion zum Erstellen einer Benennungskonvention, die als Parameter resourceName an das Vorlagenartefakt übergeben wird.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Nächste Schritte
- Erfahren Sie mehr über den Lebenszyklus von Blaupausen.
- Machen Sie sich mit der Verwendung statischer und dynamischer Parameter vertraut.
- Erfahren Sie, wie Sie die Abfolge von Blaupausen anpassen können.
- Erfahren Sie, wie Sie Ressourcen in Blaupausen sperren können.
- Lernen Sie, wie Sie vorhandene Zuweisungen aktualisieren.
- Beheben Sie Probleme bei der Blaupausenzuweisung mithilfe des allgemeinen Leitfadens zur Problembehandlung.