Azure 'de dağıtım sırasını anlayınUnderstand the deployment sequence in Azure Blueprints

Azure şemaları, bir şema tanımının atamasını işlerken kaynak oluşturma sırasını belirlemede bir sıralama düzeni kullanır.Azure Blueprints uses a sequencing order to determine the order of resource creation when processing the assignment of a blueprint definition. Bu makalede aşağıdaki kavramlar açıklanmaktadır:This article explains the following concepts:

  • Kullanılan varsayılan sıralama düzeniThe default sequencing order that is used
  • Sıralamayı ÖzelleştirmeHow to customize the order
  • Özelleştirilmiş sıra nasıl işlenirHow the customized order is processed

JSON örneklerinde, kendi değerlerinizle değiştirmeniz gereken değişkenler vardır:There are variables in the JSON examples that you need to replace with your own values:

  • {YourMG} - Yönetim grubunuzun adıyla değiştirin{YourMG} - Replace with the name of your management group

Varsayılan sıralama düzeniDefault sequencing order

Şema tanımı yapıtları dağıtmaya yönelik bir yönerge içermiyorsa veya yönerge null ise, aşağıdaki sıra kullanılır:If the blueprint definition contains no directive for the order to deploy artifacts or the directive is null, then the following order is used:

  • Yapıt adına göre sıralanan abonelik düzeyi rol atama yapıtlarıSubscription level role assignment artifacts sorted by artifact name
  • Yapıt adına göre sıralanan abonelik düzeyi ilke atama yapıtlarıSubscription level policy assignment artifacts sorted by artifact name
  • Yapıt adına göre sıralanan abonelik düzeyi Azure Resource Manager şablon yapıtlarıSubscription level Azure Resource Manager template artifacts sorted by artifact name
  • Kaynak grubu yapıtları (alt yapıtlar dahil) yer tutucu adına göre sıralanmışResource group artifacts (including child artifacts) sorted by placeholder name

Her kaynak grubu yapıtları içinde, bu kaynak grubu içinde yapıların oluşturulması için aşağıdaki sıra sırası kullanılır:Within each resource group artifact, the following sequence order is used for artifacts to be created within that resource group:

  • Yapıt adına göre sıralanan kaynak grubu alt rol ataması yapıtlarıResource group child role assignment artifacts sorted by artifact name
  • Yapıt adına göre sıralanan kaynak grubu alt ilke atama yapıtlarıResource group child policy assignment artifacts sorted by artifact name
  • Yapıt adına göre sıralanan kaynak grubu alt Azure Resource Manager şablonu yapıtlarıResource group child Azure Resource Manager template artifacts sorted by artifact name

Not

Yapıtlar () kullanımı, başvurulan yapıtın üzerinde örtük bir bağımlılık oluşturur.Use of artifacts() creates an implicit dependency on the artifact being referred to.

Sıralama düzenini özelleştirmeCustomizing the sequencing order

Büyük şema tanımları oluştururken kaynakların belirli bir sırada oluşturulması gerekebilir.When composing large blueprint definitions, it may be necessary for resources to be created in a specific order. Bu senaryonun en yaygın kullanım deseninin, bir şema tanımının birçok Azure Resource Manager şablonu içermesi durumunda olur.The most common use pattern of this scenario is when a blueprint definition includes several Azure Resource Manager templates. Planlar sıralama düzeninin tanımlanmasına izin vererek bu düzeni işler.Blueprints handles this pattern by allowing the sequencing order to be defined.

Sıralama, JSON içinde bir dependsOn özelliği tanımlayarak gerçekleştirilir.The ordering is accomplished by defining a dependsOn property in the JSON. Kaynak grupları ve yapıt nesneleri için şema tanımı bu özelliği destekler.The blueprint definition, for resource groups, and artifact objects support this property. dependsOn, belirli yapıtın oluşturulmadan önce oluşturulması gereken yapıt adlarından oluşan bir dize dizisidir.dependsOn is a string array of artifact names that the particular artifact needs to be created before it's created.

Not

Şema nesneleri oluştururken, her yapıt kaynağı, PowerShellkullanıyorsanız veya REST APIkullanılıyorsa URL uç noktası olan adı dosya adıyla alır.When creating blueprint objects, each artifact resource gets its name from the filename, if using PowerShell, or the URL endpoint, if using REST API. yapıtlar içindeki resourceGroup başvuruları, şema tanımında tanımlananlarla aynı olmalıdır.resourceGroup references in artifacts must match those defined in the blueprint definition.

Örnek-sıralı kaynak grubuExample - ordered resource group

Bu örnek şeması, bir standart kaynak grubuyla birlikte dependsOniçin bir değer bildirerek özel bir sıralama düzeni tanımlamış bir kaynak grubuna sahiptir.This example blueprint definition has a resource group that has defined a custom sequencing order by declaring a value for dependsOn, along with a standard resource group. Bu durumda, atamaadı adlı yapıt, sıralı-RG kaynak grubundan önce işlenir.In this case, the artifact named assignPolicyTags will be processed before the ordered-rg resource group. Standart-RG , varsayılan sıralama düzeni başına işlenir.standard-rg will be processed per the default sequencing order.

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

Örnek-özel siparişle yapıtExample - artifact with custom order

Bu örnek, bir Azure Resource Manager şablonuna bağlı olan bir ilke yapıtıdır.This example is a policy artifact that depends on an Azure Resource Manager template. Varsayılan sıralama olarak, Azure Resource Manager şablondan önce bir ilke yapıtı oluşturulur.By default ordering, a policy artifact would be created before the Azure Resource Manager template. Bu sıralama, ilke yapıtının Azure Resource Manager şablonunun oluşturulmasını beklemesini sağlar.This ordering allows the policy artifact to wait for the Azure Resource Manager template to be created.

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

Örnek-bir kaynak grubuna bağlı olarak abonelik düzeyi şablon yapıtıExample - subscription level template artifact depending on a resource group

Bu örnek, bir kaynak grubuna bağlı olmak için abonelik düzeyinde dağıtılan bir Kaynak Yöneticisi şablonu içindir.This example is for a Resource Manager template deployed at the subscription level to depend on a resource group. Varsayılan sıralamada, abonelik düzeyi yapıtlar bu kaynak gruplarındaki herhangi bir kaynak grubundan ve alt yapıtlardan önce oluşturulur.In default ordering, the subscription level artifacts would be created before any resource groups and child artifacts in those resource groups. Kaynak grubu, aşağıdaki gibi şema tanımında tanımlanmıştır:The resource group is defined in the blueprint definition like this:

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

Bana bekle kaynak grubuna bağlı olarak abonelik düzeyi şablonu yapıtı şöyle tanımlanır:The subscription level template artifact depending on the wait-for-me resource group is defined like this:

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

Özelleştirilmiş diziyi işlemeProcessing the customized sequence

Oluşturma işlemi sırasında, planlar yapıtlarının bağımlılık grafiğini oluşturmak için bir topik sıralama kullanılır.During the creation process, a topological sort is used to create the dependency graph of the blueprints artifacts. Denetim, kaynak grupları ve yapıtlar arasındaki her bağımlılık düzeyinin desteklendiğinden emin olmanızı sağlar.The check makes sure each level of dependency between resource groups and artifacts is supported.

Bir yapıt bağımlılığının varsayılan sırayı değiştirmediği bildirilirse, hiçbir değişiklik yapılmaz.If an artifact dependency is declared that wouldn't alter the default order, then no change is made. Bir örnek, abonelik düzeyi ilkesine bağlı olan bir kaynak grubudur.An example is a resource group that depends on a subscription level policy. Diğer bir örnek, kaynak grubu ' standart-RG ' alt rol atamasına bağlı olan bir kaynak grubu ' standart-RG ' alt ilke atamasıdır.Another example is a resource group 'standard-rg' child policy assignment that depends on resource group 'standard-rg' child role assignment. Her iki durumda da dependsOn varsayılan sıralama sırasını değiştirmezdi ve hiçbir değişiklik yapılmazlar.In both cases, the dependsOn wouldn't have altered the default sequencing order and no changes would be made.

Sonraki adımlarNext steps