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