Functies voor gebruik met Azure Blueprints

Important

Azure Blueprints (Preview) wordt op 31 januari 2027 met pensioen gestuurd, met een gefaseerde pensionering die begint op 31 juli 2026. Migreer je bestaande blueprintdefinities en -toewijzingen naar Deployment Stacks (aanbevolen) en Template Specs. Blueprint-artefacten worden omgezet naar ARM JSON-sjablonen of Bicep-bestanden die worden gebruikt om deploymentstacks te definiëren. Voor de volledige gefaseerde tijdlijn, impact en FAQ, zie Azure Blueprints pensioen of https://aka.ms/AzureBlueprintsRetirement. Voor instructies over het opstellen van een artefact als een ARM-resource, zie:

Azure Blueprints biedt functies die een blueprintdefinitie dynamischer maken. Deze functies zijn bedoeld voor gebruik met blueprintdefinities en blueprint-artefacten. Een Azure Resource Manager Template (ARM-template) artefact ondersteunt het volledige gebruik van Resource Manager-functies, naast het verkrijgen van een dynamische waarde via een blueprint-parameter.

De volgende functies worden ondersteund:

artifacts

artifacts(artifactName)

Geeft een object terug met eigenschappen die gevuld zijn met die blueprint-artefacten die worden uitgevoerd.

Note

De artifacts() functie kan niet vanuit een ARM-sjabloon worden gebruikt. De functie kan alleen worden gebruikt in de blueprint definition JSON of in de artifact JSON wanneer de blueprint wordt beheerd met Azure PowerShell of REST API als onderdeel van Blueprints-as-code.

Parameters

Parameter Required Typ Description
artifactName Yes string De naam van een blauwdruk-artefact.

Retourwaarde

Een object met outputeigenschappen. De eigenschappen van de output zijn afhankelijk van het type blauwdrukartefact dat wordt genoemd. Alle types volgen het format:

{
  "outputs": {collectionOfOutputProperties}
}

Beleidstoewijzingsartefact

{
    "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 binnen de ARM-template en worden teruggegeven door de deployment.

Roltoewijzingsartefact

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

Example

Een ARM-sjabloonartefact met de ID myTemplateArtifact bevat de volgende voorbeelduitvoer-eigenschap:

{
    "$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 data uit het myTemplateArtifact-voorbeeld zijn:

Expression Typ Value
[artifacts("myTemplateArtifact").outputs.myArray] Array ["eerste", "tweede"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] String "Eerst"
[artifacts("myTemplateArtifact").outputs.myString] String "Mijn snaarwaarde"
[artifacts("myTemplateArtifact").outputs.myObject] Object { "mijneigendom": "mijn waarde", "anotherProperty": waar }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] String "Mijn waarde"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Bool True

concat

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

Combineert meerdere stringwaarden en geeft de gekoppelde string terug.

Parameters

Parameter Required Typ Description
tekenreeks1 Yes string De eerste waarde voor concatenatie.
aanvullende argumenten Nee. string Extra waarden in opeenvolgende volgorde voor concatenatie

Retourwaarde

Een reeks samengevoegde waarden.

Remarks

De Azure Blueprints-functie verschilt van de ARM-templatefunctie doordat deze alleen met strings werkt.

Example

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

parameters

parameters(parameterName)

Geeft een blueprint-parameter terug. De gespecificeerde parameternaam moet worden gedefinieerd in de blueprintdefinitie of in blueprint-artefacten.

Parameters

Parameter Required Typ Description
parameterNaam Yes string De naam van de parameter die moet worden geretourneerd.

Retourwaarde

De waarde van de opgegeven blauwdruk of blauwdrukartefactparameter.

Remarks

De Azure Blueprints-functie verschilt van de ARM-sjabloonfunctie doordat deze alleen werkt met blueprintparameters.

Example

Definieer parameter principalIds in de blueprintdefinitie:

{
    "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 dan principalIds als argument voor parameters() 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()

Geeft een object terug dat de huidige resourcegroep vertegenwoordigt.

Retourwaarde

Het geretourneerde object heeft het volgende formaat:

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

Remarks

De Azure Blueprints-functie verschilt van de ARM-templatefunctie. De resourceGroup() functie kan niet worden gebruikt in een artefact op abonnementsniveau of in de blueprintdefinitie. Het kan alleen worden gebruikt in blauwdrukartefacten die deel uitmaken van een resourcegroep-artefact.

Een veelgebruikt gebruik van de resourceGroup() functie is het creëren van resources op dezelfde locatie als het resourcegroep-artefact.

Example

Om de locatie van de resourcegroep te gebruiken, ingesteld in de blueprintdefinitie of tijdens de toewijzing, als locatie voor een ander artefact, declareer je een resource group placeholder-object in je blueprintdefinitie. In dit voorbeeld is NetworkingPlaceholder de naam van de resourcegroep-placeholder.

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

Gebruik vervolgens de resourceGroup() functie in de context van een blueprint-artefact dat zich richt op een resource group placeholder-object. In dit voorbeeld wordt het sjabloonartefact ingezet in de NetworkingPlaceholder-resourcegroep en levert parameter resourceLocation dynamisch gevuld met de locatie van de NetworkingPlaceholder-resourcegroep aan het sjabloon. De locatie van de NetworkingPlaceholder-resourcegroep kan statisch zijn gedefinieerd op de blueprintdefinitie of dynamisch zijn gedefinieerd tijdens de toewijzing. In beide gevallen krijgt het sjabloonartefact die informatie als parameter en gebruikt het om de resources op de juiste locatie te plaatsen.

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

resourceGroups

resourceGroups(placeholderName)

Geeft een object terug dat het gespecificeerde resourcegroep-artefact vertegenwoordigt. In tegenstelling tot resourceGroup(), die context van het artefact vereist, wordt deze functie gebruikt om de eigenschappen van een specifieke resourcegroep-plaatshouder te verkrijgen wanneer deze niet in de context van die resourcegroep is.

Parameters

Parameter Required Typ Description
plaatshouderNaam Yes string De tijdelijke naam van het artefact van de resourcegroep die terugkomt.

Retourwaarde

Het geretourneerde object heeft het volgende formaat:

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

Example

Om de locatie van de resourcegroep te gebruiken, ingesteld in de blueprintdefinitie of tijdens de toewijzing, als locatie voor een ander artefact, declareer je een resource group placeholder-object in je blueprintdefinitie. In dit voorbeeld is NetworkingPlaceholder de naam van de resourcegroep-placeholder.

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

Gebruik vervolgens de resourceGroups() functie uit de context van een blueprint-artefact om een referentie te krijgen naar het resource group placeholder-object. In dit voorbeeld wordt het sjabloonartefact buiten de NetworkingPlaceholder-resourcegroep geïmplementeerd en levert parameter artifactLocation dynamisch gevuld met de locatie van de NetworkingPlaceholder-resourcegroep aan de template. De locatie van de NetworkingPlaceholder-resourcegroep kan statisch zijn gedefinieerd op de blueprintdefinitie of dynamisch zijn gedefinieerd tijdens de toewijzing. In beide gevallen krijgt het sjabloonartefact die informatie als parameter en gebruikt het om de resources op de juiste locatie te plaatsen.

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

subscription

subscription()

Retourneert details over het abonnement voor de huidige blueprint-opdracht.

Retourwaarde

Het geretourneerde object heeft het volgende formaat:

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

Example

Gebruik de weergavenaam van het abonnement en de concat() functie om een naamgevingsconventie te creëren die als parameter resourceName aan het sjabloonartefact wordt doorgegeven.

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

Volgende stappen