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:
Artefakter
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.
Parametrar
Parameter | Krävs | Typ | Description |
---|---|---|---|
artifactName | Yes | sträng | Namnet på en skissartefakt. |
Returvärde
Ett objekt med utdataegenskaper. Egenskaperna för utdata är beroende av vilken typ av skissartefakt som refereras. Alla typer följer formatet:
{
"outputs": {collectionOfOutputProperties}
}
Principtilldelningsartefakt
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
ARM-mallartefakt
Egenskaperna för utdata för det returnerade objektet definieras i ARM-mallen och returneras av distributionen.
Rolltilldelningsartefakt
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Exempel
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
concat(string1, string2, string3, ...)
Kombinerar flera strängvärden och returnerar den sammanfogade strängen.
Parametrar
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 |
Returvärde
En sträng med sammanfogade värden.
Kommentarer
Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen eftersom den bara fungerar med strängar.
Exempel
concat(parameters('organizationName'), '-vm')
parametrar
parameters(parameterName)
Returnerar ett skissparametervärde. Det angivna parameternamnet måste definieras i skissdefinitionen eller i skissartefakter.
Parametrar
Parameter | Krävs | Typ | Description |
---|---|---|---|
parameterName | Yes | sträng | Namnet på parametern som ska returneras. |
Returvärde
Värdet för den angivna skissen eller skissartefaktparametern.
Kommentarer
Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen eftersom den bara fungerar med skissparametrar.
Exempel
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
resourceGroup()
Returnerar ett objekt som representerar den aktuella resursgruppen.
Returvärde
Det returnerade objektet har följande format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Kommentarer
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.
Exempel
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
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.
Parametrar
Parameter | Krävs | Typ | Description |
---|---|---|---|
placeholderName | Yes | sträng | Platshållarnamnet för resursgruppens artefakt som ska returneras. |
Returvärde
Det returnerade objektet har följande format:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Exempel
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"
}
prenumeration
subscription()
Returnerar information om prenumerationen för den aktuella skisstilldelningen.
Returvärde
Det returnerade objektet har följande format:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Exempel
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"
}
Nästa steg
- 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.