Förstå distributionssekvensen i Azure Blueprints
Azure Blueprints använder en sekvensordning för att fastställa ordningen på resursskapandet när tilldelningen av en skissdefinition bearbetas. I den här artikeln förklaras 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 att distribuera artefakter eller om direktivet är null används följande ordning:
- Rolltilldelningsartefakter på prenumerationsnivå sorterade efter artefaktnamn
- Principtilldelningsartefakter på prenumerationsnivå sorterade efter artefaktnamn
- Artefakter Azure Resource Manager (ARM-mallar) på prenumerationsnivå 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 den resursgruppen:
- Resursgruppsartefakter för tilldelning av underordnade roller sorterade efter artefaktnamn
- Tilldelningsartefakter för underprincip för resursgrupp sorterade efter artefaktnamn
- Resource group child Azure Resource Manager template (ARM templates) artifacts sorterade efter artefaktnamn
Anteckning
Användning av artifacts() skapar ett implicit beroende på artefakten som refereras till.
Anpassa sekvensordningen
När du skapar stora skissdefinitioner kan det vara nödvändigt att resurser skapas i en viss ordning. Det vanligaste användningsmönstret för 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 sekvensordningen definieras.
Ordningen åstadkoms 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 får varje artefaktresurs sitt namn från filnamnet, om du använder PowerShelleller URL-slutpunkten, om du använder REST API. resourceGroup-referenser i artefakter måste matcha de som definieras i skissdefinitionen.
Exempel – sorterad 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 standard 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 för en ARM-mall som distribueras på prenumerationsnivå och som är beroende av en resursgrupp. I standardordningen skapas artefakter på prenumerationsnivå före 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 beroendegrafen för skissartefakter. Kontrollen ser till att varje beroendenivå mellan resursgrupper och artefakter stöds.
Om ett artefaktberoende deklareras som inte ändrar 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
- Mer information om livscykeln för en skiss.
- Förstå hur du använder statiska och dynamiska parametrar.
- 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.