Funktioner för användning med Azure Blueprints

Important

Azure Blueprints (Preview) kommer att pensioneras den 31 januari 2027, med en stegvis pensionering från och med den 31 juli 2026. Migrera dina befintliga blueprint-definitioner och tilldelningar till Deployment Stacks (rekommenderas) och Template Specs. Blueprint-artefakter konverteras till ARM JSON-mallar eller Bicep-filer som används för att definiera distributionsstackar. För den fullständiga fasade tidslinjen, påverkan och FAQ, se Azure Blueprints pensionering eller https://aka.ms/AzureBlueprintsRetirement. Information om hur du skapar en artefakt som en ARM-resurs finns i:

Azure Blueprints tillhandahåller funktioner som gör en blueprint-definition mer dynamisk. Dessa funktioner används med ritningsdefinitioner och ritningsartefakter. En Azure Resource Manager Template (ARM-mall) artefakt stödjer full användning av Resource Manager-funktioner utöver att få ett dynamiskt värde via en blueprint-parameter.

Följande funktioner stöds:

artifacts

artifacts(artifactName)

Returnerar ett objekt med egenskaper fyllda med den ritningsartefakterna ger ut.

Anmärkning

Funktionen artifacts() kan inte användas inifrån en ARM-mall. Funktionen kan endast användas i blueprint definition JSON eller i artefakt-JSON när blueprinten hanteras med Azure PowerShell eller REST API som en del av Blueprints-as-code.

Parameters

Parameter Required Type Description
artifactName Ja string Namnet på en ritningsartefakt.

Returvärde

Ett objekt med utdataegenskaper. Utdatans egenskaper beror på vilken typ av ritningsartefakt som refereras. Alla typer följer formatet:

{
  "outputs": {collectionOfOutputProperties}
}

Artefakt för policytilldelning

{
    "outputs": {
        "policyAssignmentId": "{resourceId-of-policy-assignment}",
        "policyAssignmentName": "{name-of-policy-assignment}",
        "policyDefinitionId": "{resourceId-of-policy-definition}",
    }
}

ARM-mallartefakt

Utdataegenskaperna för det returnerade objektet definieras inom 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}",
    }
}

Example

En ARM-mallartefakt med ID:t myTemplateArtifact som innehåller följande exempelutdata-egenskap:

{
    "$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å att hämta data från myTemplateArtifact-provet är:

Expression Type Value
[artifacts("myTemplateArtifact").outputs.myArray] Array ["första", "andra"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] String "först"
[artifacts("myTemplateArtifact").outputs.myString] String "mitt strängvärde"
[artifacts("myTemplateArtifact").outputs.myObject] Object { "myproperty": "my value", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] String "mitt värde"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Bool True

concat

concat(string1, string2, string3, ...)

Kombinerar flera strängvärden och returnerar den sammanfogade strängen.

Parameters

Parameter Required Type Description
sträng1 Ja string Det första värdet för sammanfogning.
ytterligare argument No string Ytterligare värden i sekventiell ordning för sammanfogning

Returvärde

En sträng av sammanfogade värden.

Remarks

Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen genom att den endast fungerar med strängar.

Example

concat(parameters('organizationName'), '-vm')

parameters

parameters(parameterName)

Returnerar ett blueprint-parametervärde. Det specificerade parameternamnet måste definieras i blueprint-definitionen eller i blueprint-artefakter.

Parameters

Parameter Required Type Description
parameternamn Ja string Namnet på parametern som ska returneras.

Returvärde

Värdet på den angivna blueprint- eller blueprint-artefaktparametern.

Remarks

Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen genom att den endast fungerar med blueprint-parametrar.

Example

Definiera parameterprincipalIds i blueprint-definitionen:

{
    "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 ritningsartefakt:

{
    "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}",
}

Remarks

Azure Blueprints-funktionen skiljer sig från ARM-mallfunktionen. Funktionen resourceGroup() kan inte användas i en prenumerationsnivå-artefakt eller i blueprint-definitionen. Den kan endast användas i ritningartefakter som ingår i en resursgruppsartefakt.

En vanlig användning av resourceGroup() funktionen är att skapa resurser på samma plats som resursgruppens artefakt.

Example

För att använda resursgruppens plats, som antingen är inställd i ritningsdefinitionen eller under tilldelningen, som plats för en annan artefakt, deklarera ett resursgruppsplatshållarobjekt i din ritningsdefinition. I detta exempel är NetworkingPlaceholder namnet på resursgruppens platshållare.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Använd sedan resourceGroup() funktionen i kontexten av en blueprint-artefakt som riktar sig mot ett resursgrupp-placeholderobjekt. I detta exempel distribueras mallartefakten till resursgruppen NetworkingPlaceholder och tillhandahåller parametern resourceLocation som dynamiskt fylls med NetworkingPlaceholder-resursgruppens plats till mallen. Platsen för resursgruppen NetworkingPlaceholder kunde ha definierats statiskt på blueprint-definitionen eller dynamiskt definierats under tilldelningen. I båda fallen får mallartefakten 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 specificerade resursgruppens artefakt. Till skillnad från resourceGroup(), som kräver artefaktens kontext, används denna funktion för att hämta egenskaperna för en specifik resursgrupps platshållare när den inte är i kontexten av den resursgruppen.

Parameters

Parameter Required Type Description
platshållarnamn Ja string Platshållarnamnet på resursgruppens artefakt som ska återvända.

Returvärde

Det returnerade objektet har följande format:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Example

För att använda resursgruppens plats, som antingen är inställd i ritningsdefinitionen eller under tilldelningen, som plats för en annan artefakt, deklarera ett resursgruppsplatshållarobjekt i din ritningsdefinition. I detta exempel är NetworkingPlaceholder namnet på resursgruppens platshållare.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Använd sedan resourceGroups() funktionen från kontexten för en ritningsartefakt för att få en referens till resursgruppens platshållarobjekt. I detta exempel distribueras mallartefakten utanför resursgruppen NetworkingPlaceholder och tillhandahåller parametern artifactLocation dynamiskt fylld med NetworkingPlaceholder-resursgruppens plats till mallen. Platsen för resursgruppen NetworkingPlaceholder kunde ha definierats statiskt på blueprint-definitionen eller dynamiskt definierats under tilldelningen. I båda fallen får mallartefakten 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

subscription()

Returnerar detaljer om prenumerationen för den aktuella blueprint-uppgiften.

Returvärde

Det returnerade objektet har följande format:

{
    "id": "/subscriptions/{subscriptionId}",
    "subscriptionId": "{subscriptionId}",
    "tenantId": "{tenantId}",
    "displayName": "{name-of-subscription}"
}

Example

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