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
- Meer informatie over de levenscyclus van een blauwdruk.
- Meer informatie over hoe u statische en dynamische parameters gebruikt.
- Meer informatie over hoe u de blauwdrukvolgorde aanpast.
- Meer informatie over hoe u gebruikmaakt van resourcevergrendeling in blauwdrukken.
- Meer informatie over hoe u bestaande toewijzingen bijwerkt.
- Problemen oplossen tijdens de toewijzing van een blauwdruk met algemene probleemoplossing.