Functies voor gebruik met Azure Blueprints

Belangrijk

Op 11 juli 2026 worden blauwdrukken (preview) afgeschaft. Migreer uw bestaande blauwdrukdefinities en -toewijzingen naar sjabloonspecificaties en implementatiestacks. Blauwdrukartefacten moeten worden geconverteerd naar ARM JSON-sjablonen of Bicep-bestanden die worden gebruikt om implementatiestacks te definiëren. Zie voor meer informatie over het ontwerpen van een artefact als een ARM-resource:

Azure Blueprints biedt functies die een blauwdrukdefinitie dynamischer maken. Deze functies zijn bedoeld voor gebruik met blauwdrukdefinities en blauwdrukartefacten. Een ARM-artefact (Azure Resource Manager Template) ondersteunt het volledige gebruik van Resource Manager functies, naast het ophalen van een dynamische waarde via een blauwdrukparameter.

De volgende functies worden ondersteund:

Artefacten

artifacts(artifactName)

Retourneert een object met eigenschappen die zijn gevuld met uitvoer van die blauwdrukartefacten.

Notitie

De artifacts() functie kan niet worden gebruikt vanuit een ARM-sjabloon. De functie kan alleen worden gebruikt in de JSON van de blauwdrukdefinitie of in de artefact-JSON bij het beheren van de blauwdruk met Azure PowerShell of REST API als onderdeel van Blueprints-as-code.

Parameters

Parameter Vereist Type Description
artifactName Yes tekenreeks De naam van een blauwdrukartefact.

Retourwaarde

Een object met uitvoereigenschappen. De uitvoereigenschappen zijn afhankelijk van het type blauwdrukartefact waarnaar wordt verwezen. Alle typen hebben de indeling:

{
  "outputs": {collectionOfOutputProperties}
}

Beleidstoewijzingartefact

{
    "outputs": {
        "policyAssignmentId": "{resourceId-of-policy-assignment}",
        "policyAssignmentName": "{name-of-policy-assignment}",
        "policyDefinitionId": "{resourceId-of-policy-definition}",
    }
}

ARM-sjabloonartefact

De uitvoereigenschappen van het geretourneerde object worden gedefinieerd in de ARM-sjabloon en geretourneerd door de implementatie.

Artefact voor roltoewijzing

{
    "outputs": {
        "roleAssignmentId": "{resourceId-of-role-assignment}",
        "roleDefinitionId": "{resourceId-of-role-definition}",
        "principalId": "{principalId-role-is-being-assigned-to}",
    }
}

Voorbeeld

Een ARM-sjabloonartefact met de id myTemplateArtifact met de volgende voorbeelduitvoereigenschap:

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

Enkele voorbeelden van het ophalen van gegevens uit het myTemplateArtifact-voorbeeld zijn:

Expression Type Waarde
[artifacts("myTemplateArtifact").outputs.myArray] Matrix ["first", "second"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] Tekenreeks "eerste"
[artifacts("myTemplateArtifact").outputs.myString] Tekenreeks "mijn tekenreekswaarde"
[artifacts("myTemplateArtifact").outputs.myObject] Object { "myproperty": "my value", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] Tekenreeks "mijn waarde"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Booleaanse waarde True

Concat

concat(string1, string2, string3, ...)

Combineert meerdere tekenreekswaarden en retourneert de samengevoegde tekenreeks.

Parameters

Parameter Vereist Type Description
tekenreeks1 Yes tekenreeks De eerste waarde voor samenvoeging.
aanvullende argumenten No tekenreeks Aanvullende waarden in opeenvolgende volgorde voor samenvoeging

Retourwaarde

Een reeks samengevoegde waarden.

Opmerkingen

De functie Azure Blueprints verschilt van de ARM-sjabloonfunctie omdat deze alleen werkt met tekenreeksen.

Voorbeeld

concat(parameters('organizationName'), '-vm')

parameters

parameters(parameterName)

Retourneert een blauwdrukparameterwaarde. De opgegeven parameternaam moet worden gedefinieerd in de blauwdrukdefinitie of in blauwdrukartefacten.

Parameters

Parameter Vereist Type Description
parameterName Yes tekenreeks De naam van de parameter die moet worden geretourneerd.

Retourwaarde

De waarde van de opgegeven blauwdruk of blauwdrukartefactparameter.

Opmerkingen

De functie Azure Blueprints verschilt van de ARM-sjabloonfunctie omdat deze alleen werkt met blauwdrukparameters.

Voorbeeld

Definieer parameter-principalIds in de blauwdrukdefinitie:

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

Gebruik vervolgens principalIds als het argument voor parameters() in een blauwdrukartefact:

{
    "type": "Microsoft.Blueprint/blueprints/artifacts",
    "kind": "roleAssignment",
    ...
    "properties": {
        "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
        "principalIds": "[parameters('principalIds')]",
        ...
    }
}

resourceGroup

resourceGroup()

Retourneert een object dat de huidige resourcegroep vertegenwoordigt.

Retourwaarde

Het geretourneerde object heeft de volgende indeling:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Opmerkingen

De functie Azure Blueprints verschilt van de ARM-sjabloonfunctie. De resourceGroup() functie kan niet worden gebruikt in een artefact op abonnementsniveau of in de blauwdrukdefinitie. Deze kan alleen worden gebruikt in blauwdrukartefacten die deel uitmaken van een resourcegroepartefact.

De functie wordt vaak gebruikt resourceGroup() om resources te maken op dezelfde locatie als het artefact van de resourcegroep.

Voorbeeld

Als u de locatie van de resourcegroep wilt gebruiken, die u in de blauwdrukdefinitie of tijdens de toewijzing instelt als de locatie voor een ander artefact, declareert u een tijdelijke aanduiding voor een resourcegroepobject in uw blauwdrukdefinitie. In dit voorbeeld is NetworkingPlaceholder de naam van de tijdelijke aanduiding voor de resourcegroep.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Gebruik vervolgens de resourceGroup() functie in de context van een blauwdrukartefact dat is gericht op een tijdelijke aanduiding voor een resourcegroepobject. In dit voorbeeld wordt het sjabloonartefact geïmplementeerd in de resourcegroep NetworkingPlaceholder en wordt de parameter resourceLocation dynamisch ingevuld met de locatie van de resourcegroep NetworkingPlaceholder voor de sjabloon. De locatie van de resourcegroep NetworkingPlaceholder kan statisch zijn gedefinieerd in de blauwdrukdefinitie of dynamisch zijn gedefinieerd tijdens de toewijzing. In beide gevallen krijgt het sjabloonartefact die informatie als parameter en wordt deze gebruikt om de resources op de juiste locatie te implementeren.

{
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "kind": "template",
  "properties": {
      "template": {
        ...
      },
      "resourceGroup": "NetworkingPlaceholder",
      ...
      "parameters": {
        "resourceLocation": {
          "value": "[resourceGroup().location]"
        }
      }
  }
}

resourceGroups

resourceGroups(placeholderName)

Retourneert een object dat het opgegeven resourcegroepartefact vertegenwoordigt. In tegenstelling tot resourceGroup(), waarvoor context van het artefact is vereist, wordt deze functie gebruikt om de eigenschappen van een specifieke tijdelijke aanduiding voor een resourcegroep op te halen wanneer deze zich niet in de context van die resourcegroep bevindt.

Parameters

Parameter Vereist Type Description
placeholderName Yes tekenreeks De tijdelijke aanduiding voor de naam van het resourcegroepartefact dat moet worden geretourneerd.

Retourwaarde

Het geretourneerde object heeft de volgende indeling:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Voorbeeld

Als u de locatie van de resourcegroep wilt gebruiken, die u in de blauwdrukdefinitie of tijdens de toewijzing instelt als de locatie voor een ander artefact, declareert u een tijdelijke aanduiding voor een resourcegroepobject in uw blauwdrukdefinitie. In dit voorbeeld is NetworkingPlaceholder de naam van de tijdelijke aanduiding voor de resourcegroep.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Gebruik vervolgens de resourceGroups() functie uit de context van een blauwdrukartefact om een verwijzing naar het tijdelijke aanduidingsobject voor de resourcegroep op te halen. In dit voorbeeld wordt het sjabloonartefact buiten de resourcegroep NetworkingPlaceholder geïmplementeerd en wordt de parameter artifactLocation dynamisch ingevuld met de locatie van de resourcegroep NetworkingPlaceholder voor de sjabloon. De locatie van de resourcegroep NetworkingPlaceholder kan statisch zijn gedefinieerd in de blauwdrukdefinitie of dynamisch zijn gedefinieerd tijdens de toewijzing. In beide gevallen krijgt het sjabloonartefact die informatie als parameter en wordt deze gebruikt om de resources op de juiste locatie te implementeren.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "artifactLocation": {
          "value": "[resourceGroups('NetworkingPlaceholder').location]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

abonnement

subscription()

Retourneert details over het abonnement voor de huidige blauwdruktoewijzing.

Retourwaarde

Het geretourneerde object heeft de volgende indeling:

{
    "id": "/subscriptions/{subscriptionId}",
    "subscriptionId": "{subscriptionId}",
    "tenantId": "{tenantId}",
    "displayName": "{name-of-subscription}"
}

Voorbeeld

Gebruik de weergavenaam van het abonnement en de concat() functie om een naamconventie te maken die wordt doorgegeven als parameter resourceName aan het sjabloonartefact.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "resourceName": {
          "value": "[concat(subscription().displayName, '-vm')]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

Volgende stappen