Functies voor gebruik met Azure Blueprints
Azure Blueprints functies die een blauwdrukdefinitie dynamischer maken. Deze functies zijn voor gebruik met blauwdrukdefinities en blauwdrukartefacten. Een Azure Resource Manager sjabloon (ARM-sjabloon) ondersteunt het volledige gebruik van Resource Manager-functies, naast het verkrijgen van een dynamische waarde via een blauwdrukparameter.
De volgende functies worden ondersteund:
Artefacten
artifacts(artifactName)
Retourneert een object met eigenschappen dat is gevuld met de uitvoer van blauwdrukartefacten.
Notitie
De artifacts() functie kan niet worden gebruikt vanuit een ARM-sjabloon. De functie kan alleen worden gebruikt in de blauwdrukdefinitie JSON of in de JSON van het artefact 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 van uitvoereigenschappen. De uitvoereigenschappen zijn afhankelijk van het type blauwdrukartefact waarnaar wordt verwezen. Alle typen hebben de volgende indeling:
{
"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 in de ARM-sjabloon en geretourneerd door de implementatie.
Roltoewijzingsartefact
{
"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 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 gegevens uit het myTemplateArtifact-voorbeeld zijn:
| Expression | Type | Waarde |
|---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Matrix | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
Tekenreeks | 'first' |
[artifacts("myTemplateArtifact").outputs.myString] |
Tekenreeks | 'mijn tekenreekswaarde' |
[artifacts("myTemplateArtifact").outputs.myObject] |
Object | { "myproperty": "mijn waarde", "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 samenvoegde tekenreeks.
Parameters
| Parameter | Vereist | Type | Description |
|---|---|---|---|
| tekenreeks1 | Yes | tekenreeks | De eerste waarde voor samenvoeging. |
| aanvullende argumenten | No | tekenreeks | Aanvullende waarden in sequentiële volgorde voor samenvoeging |
Retourwaarde
Een tekenreeks met samenvoegingswaarden.
Opmerkingen
De Azure Blueprints verschilt van de ARM-sjabloonfunctie in dat 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 retourneren. |
Retourwaarde
De waarde van de opgegeven blauwdruk- of blauwdrukartefactparameter.
Opmerkingen
De Azure Blueprints verschilt van de ARM-sjabloonfunctie in dat 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 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 Azure Blueprints functie verschilt van de arm-sjabloonfunctie. De functie kan niet worden gebruikt in een artefact op resourceGroup() abonnementsniveau of in de blauwdrukdefinitie. Deze kan alleen worden gebruikt in blauwdrukartefacten die deel uitmaken van een resourcegroepartefact.
Een veelgebruikte functie resourceGroup() is het maken van resources op dezelfde locatie als het artefact van de resourcegroep.
Voorbeeld
Als u de locatie van de resourcegroep wilt gebruiken, stelt u in de blauwdrukdefinitie of tijdens de toewijzing in als de locatie voor een ander artefact, declareer dan een tijdelijke aanduiding voor de resourcegroep 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 functie resourceGroup() 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 wordt aan het sjabloonartefact die informatie verstrekt als parameter en 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 , 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 resourceGroup() niet in de context van die resourcegroep valt.
Parameters
| Parameter | Vereist | Type | Description |
|---|---|---|---|
| tijdelijke aanduidingName | Yes | tekenreeks | De tijdelijke aanduidingsnaam van het resourcegroepartefact dat moet worden retourneren. |
Retourwaarde
Het geretourneerde object heeft de volgende indeling:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Voorbeeld
Als u de locatie van de resourcegroep wilt gebruiken, stelt u in de blauwdrukdefinitie of tijdens de toewijzing in als de locatie voor een ander artefact, declareer dan een tijdelijke aanduiding voor de resourcegroep 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 functie resourceGroups() 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 geïmplementeerd buiten de resourcegroep NetworkingPlaceholder en wordt 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 wordt aan het sjabloonartefact die informatie verstrekt als parameter en 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 functie om een naamconventie te maken die als concat() parameter resourceName wordt doorgegeven 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.