Vysvětlení pořadí nasazení v Azure Blueprints

Důležité

Azure Blueprints (Preview) bude vyřazena z provozu 31. ledna 2027, přičemž postupné vyřazování začne 31. července 2026. Migrujte své stávající definice a přiřazení Blueprintů do Deployment Stacks (doporučeno) a Template Specs. Artefakty blueprintu jsou převedeny na šablony ARM JSON nebo soubory Bicep, které se používají k definování zásobníků nasazení. Kompletní harmonogram jednotlivých fází, dopad a nejčastější dotazy viz vyřazení Azure Blueprints nebo https://aka.ms/AzureBlueprintsRetirement. Informace o tom, jak vytvořit artefakt jako zdroj ARM, najdete zde:

Azure Blueprints používá pořadí sekvencování k určení pořadí vytváření prostředků při zpracování přiřazení definice podrobného plánu. Tento článek vysvětluje následující koncepty:

  • Výchozí pořadí sekvencování, které se používá
  • Jak přizpůsobit objednávku
  • Způsob zpracování přizpůsobené objednávky

V příkladech JSON existují proměnné, které je potřeba nahradit vlastními hodnotami:

  • Proměnnou {YourMG} nahraďte názvem skupiny pro správu.

Výchozí pořadí sekvencování

Pokud definice podrobného plánu neobsahuje žádnou direktivu pro pořadí nasazení artefaktů nebo direktiva má hodnotu null, použije se následující pořadí:

  • Artefakty přiřazení role na úrovni předplatného seřazené podle názvu artefaktu
  • Artefakty přiřazené zásadám na úrovni předplatného, seřazené podle názvu artefaktu
  • Artefakty šablony Azure Resource Manageru na úrovni předplatného (šablony ARM) seřazené podle názvu artefaktu
  • Artefakty skupiny prostředků (včetně podřízených artefaktů) seřazené podle zástupného názvu

V rámci každé skupiny prostředků se pro vytvoření artefaktů v této skupině prostředků používá následující pořadí:

  • Artefakty související s přiřazením role v podřízené skupině prostředků seřazené podle názvu artefaktu
  • Artefakty přiřazení podřízených zásad skupiny prostředků, seřazené podle názvu artefaktu
  • Artefakty podřízené skupině prostředků šablony Azure Resource Manager (šablony ARM), seřazené podle názvu artefaktu

Poznámka:

Použití artefaktů() vytvoří implicitní závislost na odkazované artefaktu.

Přizpůsobení pořadí sekvencování

Při vytváření rozsáhlých definic podrobného plánu může být nutné vytvořit prostředky v určitém pořadí. Nejběžnějším vzorem použití tohoto scénáře je situace, kdy definice podrobného plánu obsahuje několik šablon ARM. Azure Blueprints tento vzor zpracovává tím, že umožňuje definovat pořadí sekvencování.

Řazení se provádí definováním dependsOn vlastnosti ve formátu JSON. Tuto vlastnost podporují definice podrobného plánu pro skupiny prostředků a objekty artefaktů. dependsOn je pole řetězců názvů artefaktů, které je potřeba vytvořit před vytvořením konkrétního artefaktu.

Poznámka:

Při vytváření objektů podrobného plánu získá každý prostředek artefaktu svůj název z názvu souboru, pokud používáte PowerShell nebo koncový bod adresy URL, pokud používáte rozhraní REST API. Odkazy na resourceGroup v artefaktech musí odpovídat těm, které jsou definovány v definici plánu.

Příklad – uspořádaná skupina zdrojů

Tato ukázková definice podrobného plánu má skupinu prostředků, která definovala vlastní pořadí sekvencování deklarací hodnoty pro dependsOna standardní skupinu prostředků. V tomto případě bude artefakt s názvem assignPolicyTags zpracován před skupinou prostředků ordered-rg. Standard-rg se zpracuje podle výchozího pořadí sekvencování.

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

Příklad – artefakt s vlastním pořadím

Tento příklad je artefakt zásad, který závisí na šabloně ARM. Ve výchozím nastavení by se artefakt politiky vytvořil před šablonou ARM. Toto řazení umožňuje politice artefaktů počkat, než bude šablona ARM vytvořena.

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

Příklad – artefakt šablony na úrovni předplatného závislý na skupině prostředků

Tento příklad je určený pro ARM šablonu nasazenou na úrovni předplatného, která závisí na skupině prostředků. Ve výchozím pořadí jsou artefakty na úrovni předplatného vytvořeny dříve než všechny skupiny prostředků a podřízené artefakty v těchto skupinách prostředků. Skupina prostředků je definována v definici podrobného plánu takto:

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

Šablona artefaktu na úrovni předplatného, která závisí na skupině prostředků wait-for-me, je definována takto:

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

Zpracování přizpůsobené sekvence

Během procesu vytváření se k vytvoření grafu závislostí artefaktů podrobných plánů používá topologické řazení. Kontrola zajišťuje, že se podporuje každá úroveň závislosti mezi skupinami prostředků a artefakty.

Pokud je deklarována závislost artefaktů, která by nezměnila výchozí pořadí, neprovedou se žádné změny. Příkladem je skupina prostředků, která závisí na zásadách pro úroveň předplatného. Dalším příkladem je přiřazení podřízené zásady u resource group 'standard-rg', které závisí na přiřazení podřízené role u resource group 'standard-rg'. V obou případech by dependsOn nezměnil výchozí pořadí a nedošlo by k žádným změnám.

Další kroky