Funktioner för användning med Azure Blueprints
Viktigt
Den 11 juli 2026 kommer skisser (förhandsversion) att bli inaktuella. Migrera dina befintliga skissdefinitioner och tilldelningar till mallspecifikationer och distributionsstackar. Skissartefakter ska konverteras till ARM JSON-mallar eller Bicep-filer som används för att definiera distributionsstackar. Information om hur du skapar en artefakt som en ARM-resurs finns i:
Azure Blueprints innehåller funktioner som gör en skissdefinition mer dynamisk. Dessa funktioner är till för användning med skissdefinitioner och skissartefakter. En ARM-mallartefakt (Azure Resource Manager Template) stöder full användning av Resource Manager funktioner, förutom att hämta ett dynamiskt värde via en skissparameter.
Följande funktioner stöds:
artifacts(artifactName)
Returnerar ett objekt med egenskaper som fylls med skissartefakternas utdata.
Anteckning
Funktionen artifacts()
kan inte användas inifrån en ARM-mall. Funktionen kan bara användas i skissdefinitionen JSON eller i artefakt-JSON när du hanterar skissen med Azure PowerShell eller REST API som en del av Blueprints-as-code.
Parameter | Krävs | Typ | Description |
---|---|---|---|
artifactName | Yes | sträng | Namnet på en skissartefakt. |
Ett objekt med utdataegenskaper. Egenskaperna för utdata är beroende av vilken typ av skissartefakt som refereras. Alla typer följer formatet:
{
"outputs": {collectionOfOutputProperties}
}
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
Egenskaperna för utdata för det returnerade objektet definieras i ARM-mallen och returneras av distributionen.
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
En ARM-mallartefakt med ID :t myTemplateArtifact som innehåller följande exempel på utdataegenskap:
{
"$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
}
}
}
}
Några exempel på hur du hämtar data från exemplet myTemplateArtifact är:
Uttryck | Typ | Värde |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Matris | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
Sträng | "first" |
[artifacts("myTemplateArtifact").outputs.myString] |
Sträng | "mitt strängvärde" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Objekt | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
Sträng | "mitt värde" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Bool | Sant |
concat(string1, string2, string3, ...)
Kombinerar flera strängvärden och returnerar den sammanfogade strängen.
Parameter | Krävs | Typ | Description |
---|---|---|---|
string1 | Yes | sträng | Det första värdet för sammanfogning. |
ytterligare argument | No | sträng | Ytterligare värden i sekventiell ordning för sammanfogning |
En sträng med sammanfogade värden.
Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen eftersom den bara fungerar med strängar.
concat(parameters('organizationName'), '-vm')
parameters(parameterName)
Returnerar ett skissparametervärde. Det angivna parameternamnet måste definieras i skissdefinitionen eller i skissartefakter.
Parameter | Krävs | Typ | Description |
---|---|---|---|
parameterName | Yes | sträng | Namnet på parametern som ska returneras. |
Värdet för den angivna skissen eller skissartefaktparametern.
Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen eftersom den bara fungerar med skissparametrar.
Definiera parametern principalIds i skissdefinitionen:
{
"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"
}
}
},
...
}
}
Använd sedan principalIds som argument för parameters()
i en skissartefakt:
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup()
Returnerar ett objekt som representerar den aktuella resursgruppen.
Det returnerade objektet har följande format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Funktionen Azure Blueprints skiljer sig från ARM-mallfunktionen. Funktionen resourceGroup()
kan inte användas i en artefakt på prenumerationsnivå eller skissdefinitionen. Den kan bara användas i skissartefakter som ingår i en resursgruppsartefakt.
En vanlig användning av resourceGroup()
funktionen är att skapa resurser på samma plats som resursgruppens artefakt.
Om du vill använda resursgruppens plats anger du antingen skissdefinitionen eller under tilldelningen, som plats för en annan artefakt, och deklarerar ett platshållarobjekt för resursgrupper i skissdefinitionen. I det här exemplet är NetworkingPlaceholder namnet på resursgruppens platshållare.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Använd resourceGroup()
sedan funktionen i kontexten för en skissartefakt som är riktad mot ett platshållarobjekt för resursgrupper. I det här exemplet distribueras mallartefakten till resursgruppen NetworkingPlaceholder och ger parametern resourceLocation dynamiskt ifylld med resursgruppsplatsen NetworkingPlaceholder till mallen. Platsen för resursgruppen NetworkingPlaceholder kan ha definierats statiskt i skissdefinitionen eller definierats dynamiskt under tilldelningen. I båda fallen tillhandahålls mallartefakten den informationen som en parameter och använder den för att distribuera resurserna till rätt plats.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups(placeholderName)
Returnerar ett objekt som representerar den angivna resursgruppens artefakt. Till skillnad från resourceGroup()
, som kräver kontext för artefakten, används den här funktionen för att hämta egenskaperna för en specifik platshållare för resursgrupper när den inte är i kontexten för den resursgruppen.
Parameter | Krävs | Typ | Description |
---|---|---|---|
placeholderName | Yes | sträng | Platshållarnamnet för resursgruppens artefakt som ska returneras. |
Det returnerade objektet har följande format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Om du vill använda resursgruppens plats anger du antingen skissdefinitionen eller under tilldelningen, som plats för en annan artefakt, och deklarerar ett platshållarobjekt för resursgrupper i skissdefinitionen. I det här exemplet är NetworkingPlaceholder namnet på resursgruppens platshållare.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Använd resourceGroups()
sedan funktionen från kontexten för en skissartefakt för att hämta en referens till platshållarobjektet för resursgruppen. I det här exemplet distribueras mallartefakten utanför resursgruppen NetworkingPlaceholder och ger parametern artifactLocation dynamiskt ifylld med resursgruppen NetworkingPlaceholder till mallen. Platsen för resursgruppen NetworkingPlaceholder kan ha definierats statiskt i skissdefinitionen eller definierats dynamiskt under tilldelningen. I båda fallen tillhandahålls mallartefakten den informationen som en parameter och använder den för att distribuera resurserna till rätt plats.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
subscription()
Returnerar information om prenumerationen för den aktuella skisstilldelningen.
Det returnerade objektet har följande format:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Använd prenumerationens visningsnamn och concat()
funktionen för att skapa en namngivningskonvention som skickas som parameter resourceName till mallartefakten.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
- Mer information om livscykeln för en skiss.
- Förstå hur du använder statiska och dynamiska parametrar.
- Lär dig hur du anpassar sekvensordningen för en skiss.
- Lär dig hur du använder resurslåsning för en skiss.
- Lär dig hur du uppdaterar befintliga tilldelningar.
- Lös problem som kan uppstå vid tilldelningen av en skiss med allmän felsökning.