Compartilhar via


Migrar blueprints para pilhas de implantação

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

Etapas da migração

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

  2. Converta os arquivos JSON de definição de blueprint em um único modelo ARM ou arquivo Bicep a ser implantado por meio de pilhas de implantação com as seguintes considerações:

    • 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 todos os modelos em um modelo principal para envio em 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 usar 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 modelo para os modelos do 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@2022-06-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@2021-01-01' = {
  name: rgName
  location: rgLocation
}

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