Migrar blueprints para pilhas de implantação

Importante

Azure Blueprints (Preview) será aposentado em 31 de janeiro de 2027, com uma aposentadoria gradual que começou em 31 de julho de 2026. Migre suas definições e atribuições de blueprints existentes para Deployment Stacks (recomendado) e Template Specs. Artefatos de blueprint são convertidos em modelos ARM JSON ou arquivos Bicep usados ​​para definir pilhas de implantação. Para obter o cronograma completo das fases, o impacto e as perguntas frequentes, consulte desativação do Azure Blueprints ou https://aka.ms/AzureBlueprintsRetirement. Para saber como criar um artefato como um recurso do ARM, confira:

Este artigo explica como converter suas definições e atribuições de Blueprint em stacks de implantação. As pilhas de implantação são novas ferramentas no namespace Microsoft.Resources, trazendo recursos do Azure Blueprint para essa área.

Etapas da migração

  1. Exporte as definições de plano em arquivos JSON de definição de plano que incluem artefatos de políticas do Azure, atribuições de função do Azure e modelos. Para obter mais informações, consulte Exportar a definição do seu plano.

  2. Converta os arquivos JSON de definição do blueprint em um único template do ARM ou arquivo Bicep para implantação por meio de pilhas de implantação, com as considerações a seguir:

    • Atribuições de função: converter quaisquer atribuições de função.
    • Políticas: converta as atribuições de política na sintaxe Bicep (ou modelo JSON do ARM) e adicione-as ao modelo principal. Você também pode inserir o modelo JSON policyDefinitions.
    • Modelos: converta quaisquer modelos em um modelo principal para envio a uma pilha de implantação. Você pode usar módulos no Bicep, inserir modelos como modelos aninhados ou links de modelo e, opcionalmente, usar especificações de modelo para armazenar seus modelos no Azure. As especificações de modelo não são necessárias para o uso de pilhas de implantação.
    • Bloqueios: a pilha de implantação DenySettingsMode oferece a capacidade de bloquear alterações indesejadas por meio de bloqueios DenySettingsMode (semelhantes aos bloqueios do Blueprint). Você pode configurá-las por meio da CLI do Azure ou do Azure PowerShell. Para fazer isso, você precisa de funções correspondentes para poder definir as configurações de negação. Para saber mais, confira Pilhas de implantação.
  3. Opcionalmente, você pode criar especificações de template para os templates ARM convertidos ou arquivos Bicep. As especificações de modelo permitem que você armazene modelos e suas versões em seu ambiente do Azure, simplificando o compartilhamento dos modelos em sua organização. As pilhas de implantação permitem implantar definições de especificação de modelo ou arquivos ARM/Bicep em um escopo de destino especificado.

Amostra

O arquivo Bicep a seguir é um arquivo de migração de exemplo.

targetScope = 'subscription'

param roleAssignmentName string = 'myTestRoleAssignment'
param roleDefinitionId string = guid(roleAssignmentName)
param principalId string = guid('myTestId')

param policyAssignmentName string = 'myTestPolicyAssignment'
param policyDefinitionID string = '/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d'

param rgName string = 'myTestRg'
param rgLocation string = deployment().location
param templateSpecName string = 'myNetworkingTs'

// Step 1 - create role assignments
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(roleAssignmentName)
  properties: {
    principalId: principalId
    roleDefinitionId: roleDefinitionId
  }
}

// Step 2 - create policy assignments
resource policyAssignment 'Microsoft.Authorization/policyAssignments@2025-03-01' = {
    name: policyAssignmentName
    scope: subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)
    properties: {
        policyDefinitionId: policyDefinitionID
    }
}

// Step 3 - create template artifacts via modules (or template specs)
resource rg1 'Microsoft.Resources/resourceGroups@2025-04-01' = {
  name: rgName
  location: rgLocation
}

module vnet 'templates/bicep/vnet.bicep' = if (rgName == 'myTestRg') {
  name: uniqueString(rgName)
  scope: rg1
  params: { location: rgLocation }
}

Migrar para especificações de modelo

Caso você queira armazenar e controlar a versão dos modelos convertidos no Azure, em vez de implantá-los diretamente, publique-os como especificações de modelo e implante a especificação de modelo com uma pilha de implantação. As especificações do modelo substituem a função de armazenamento de artefatos e controle de versão desempenhada pelas definições de blueprint. Para obter instruções passo a passo, consulte Migrar Azure Blueprints para especificações de modelo.

Próximas Etapas