Förstå distributionssekvensen i Azure Blueprints

Viktigt

Den 11 juli 2026 blir skisser (förhandsversion) 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 använder en sekvenseringsordning för att fastställa i vilken ordning resursen skapas när tilldelningen av en skissdefinition bearbetas. Den här artikeln beskriver följande begrepp:

  • Standardordningen för sekvensering som används
  • Så här anpassar du beställningen
  • Så här bearbetas den anpassade ordern

Det finns variabler i JSON-exemplen som du behöver ersätta med dina egna värden:

  • {YourMG} – Ersätt med namnet på din hanteringsgrupp

Standardordning för sekvensering

Om skissdefinitionen inte innehåller något direktiv för distributionsordningen för artefakter eller om direktivet är null används följande ordning:

  • Rolltilldelningsartefakter på prenumerationsnivå sorterade efter artefaktnamn
  • Principtilldelningsartefakter på prenumerationsnivå sorterade efter artefaktnamn
  • Azure Resource Manager-mallar på prenumerationsnivå (ARM-mallar) artefakter sorterade efter artefaktnamn
  • Resursgruppsartefakter (inklusive underordnade artefakter) sorterade efter platshållarnamn

I varje resursgruppsartefakt används följande sekvensordning för artefakter som ska skapas i resursgruppen:

  • Resursgruppens underordnade rolltilldelningsartefakter sorterade efter artefaktnamn
  • Resursgruppens underordnade principtilldelningsartefakter sorterade efter artefaktnamn
  • Resursgruppens underordnade Azure Resource Manager-mallar (ARM-mallar) artefakter sorterade efter artefaktnamn

Anteckning

Användning av artifacts() skapar ett implicit beroende av artefakten som refereras till.

Anpassa ordningsföljden

När du skapar stora skissdefinitioner kan det vara nödvändigt att skapa resurser i en viss ordning. Det vanligaste användningsmönstret i det här scenariot är när en skissdefinition innehåller flera ARM-mallar. Azure Blueprints hanterar det här mönstret genom att tillåta att sekvenseringsordningen definieras.

Ordningen utförs genom att definiera en dependsOn egenskap i JSON. Skissdefinitionen för resursgrupper och artefaktobjekt stöder den här egenskapen. dependsOn är en strängmatris med artefaktnamn som den specifika artefakten måste skapas innan den skapas.

Anteckning

När du skapar skissobjekt hämtar varje artefaktresurs sitt namn från filnamnet, om du använder PowerShell eller URL-slutpunkten om du använder REST API. resourceGroup-referenser i artefakter måste matcha dem som definierats i skissdefinitionen.

Exempel – ordnad resursgrupp

Den här exempelskissdefinitionen har en resursgrupp som har definierat en anpassad sekvenseringsordning genom att deklarera ett värde för dependsOn, tillsammans med en standardresursgrupp. I det här fallet bearbetas artefakten med namnet assignPolicyTags före resursgruppen ordered-rg . standard-rg bearbetas enligt standardordningen för sekvensering.

{
    "properties": {
        "description": "Example blueprint with custom sequencing order",
        "resourceGroups": {
            "ordered-rg": {
                "dependsOn": [
                    "assignPolicyTags"
                ],
                "metadata": {
                    "description": "Resource Group that waits for 'assignPolicyTags' creation"
                }
            },
            "standard-rg": {
                "metadata": {
                    "description": "Resource Group that follows the standard sequence ordering"
                }
            }
        },
        "targetScope": "subscription"
    },
    "type": "Microsoft.Blueprint/blueprints"
}

Exempel – artefakt med anpassad ordning

Det här exemplet är en principartefakt som är beroende av en ARM-mall. Som standardordning skapas en principartefakt före ARM-mallen. Med den här ordningen kan principartefakten vänta tills ARM-mallen har skapats.

{
    "properties": {
        "displayName": "Assigns an identifying tag",
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
        "resourceGroup": "standard-rg",
        "dependsOn": [
            "customTemplate"
        ]
    },
    "kind": "policyAssignment",
    "type": "Microsoft.Blueprint/artifacts"
}

Exempel – mallartefakt på prenumerationsnivå beroende på en resursgrupp

Det här exemplet är att en ARM-mall som distribueras på prenumerationsnivå ska vara beroende av en resursgrupp. I standardordningen skapas artefakter på prenumerationsnivå före eventuella resursgrupper och underordnade artefakter i dessa resursgrupper. Resursgruppen definieras i skissdefinitionen så här:

"resourceGroups": {
    "wait-for-me": {
        "metadata": {
            "description": "Resource Group that is deployed prior to the subscription level template artifact"
        }
    }
}

Mallartefakten på prenumerationsnivå beroende på resursgruppen wait-for-me definieras så här:

{
    "properties": {
        "template": {
            ...
        },
        "parameters": {
            ...
        },
        "dependsOn": ["wait-for-me"],
        "displayName": "SubLevelTemplate",
        "description": ""
    },
    "kind": "template",
    "type": "Microsoft.Blueprint/blueprints/artifacts"
}

Bearbeta den anpassade sekvensen

Under skapandeprocessen används en topologisk sortering för att skapa beroendediagrammet för skissartefakterna. Kontrollen ser till att varje beroendenivå mellan resursgrupper och artefakter stöds.

Om ett artefaktberoende deklareras som inte skulle ändra standardordningen görs ingen ändring. Ett exempel är en resursgrupp som är beroende av en princip på prenumerationsnivå. Ett annat exempel är en underordnad principtilldelning för resursgruppen "standard-rg" som är beroende av resursgruppens underordnade rolltilldelning "standard-rg". I båda fallen dependsOn skulle inte ha ändrat standardordningen för sekvensering och inga ändringar skulle göras.

Nästa steg