Migrar esquemas 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 Microsoft.Resources
namespace, trazendo recursos do Azure Blueprint para essa área.
Passos da Migração
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.
Converta os arquivos JSON de definição do 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: converta todas as atribuições de função.
-
Políticas: converta quaisquer atribuições de política na sintaxe Bicep (ou modelo JSON ARM) e adicione-as ao seu modelo principal. Você também pode incorporar o
policyDefinitions
no modelo JSON. - Modelos: converta quaisquer modelos em um modelo principal para envio a uma pilha de implantação. Você pode usar módulos no Bicep, incorporar 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 via
DenySettingsMode
(semelhante aos bloqueios do Blueprint). Você pode configurá-los por meio da CLI do Azure ou do Azure PowerShell. Para fazer isso, você precisa de funções correspondentes para poder definir configurações de negação. Para obter mais informações, consulte Pilhas de implantação.
Opcionalmente, você pode criar especificações de modelo para os modelos ARM convertidos ou arquivos Bicep. As especificações de modelo permitem armazenar modelos e suas versões em seu ambiente do Azure, simplificando o compartilhamento dos modelos em toda a organização. As pilhas de implantação permitem implantar definições de especificação de modelo, ou modelos ARM/arquivos Bicep, em um escopo de destino especificado.
Exemplo
O seguinte arquivo Bicep é 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 }
}