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