Migrar plantillas a stacks de implementación

Importante

Azure Blueprints (Preview) se retirará el 31 de enero de 2027, con una retirada gradual que comenzó el 31 de julio de 2026. Migre sus definiciones y asignaciones de Blueprints existentes a Deployment Stacks (recomendado) y Template Specs. Los artefactos de planos técnicos se convierten en plantillas JSON de ARM o archivos de Bicep que se utilizan para definir pilas de implementación. Para obtener el calendario completo por fases, el impacto y las preguntas más frecuentes, consulte la retirada de Azure Blueprints o https://aka.ms/AzureBlueprintsRetirement. Para obtener información sobre cómo crear un artefacto como un recurso de ARM, consulte:

En este artículo, se explica cómo convertir las definiciones y asignaciones de Blueprint en pilas de implementación. Las pilas de implementación son nuevas herramientas dentro del espacio de nombres Microsoft.Resources que incorporan las características de Azure Blueprint a este ámbito.

Pasos de migración

  1. Exporte las definiciones de planos técnicos a los archivos JSON de definición de planos técnicos, que incluyen los artefactos de las directivas de Azure, las asignaciones de roles de Azure y las plantillas. Para más información, consulte Exportación de la definición del plano técnico.

  2. Convierta los archivos JSON de definición de planos técnicos en una única plantilla de ARM o archivo de Bicep para implementarlos mediante pilas de implementación, teniendo en cuenta las siguientes consideraciones:

    • Asignaciones de roles: convierta cualquier asignación de roles.
    • Directivas: convierta las asignaciones de directivas en la sintaxis de Bicep (o plantilla JSON de ARM) y, a continuación, agréguelas a la plantilla principal. También puede insertar el policyDefinitions en la plantilla JSON.
    • Plantillas: Convertir cualquier plantilla en una plantilla principal para enviarla a una pila de implementación. Puede usar módulos en Bicep, insertar plantillas como plantillas anidadas o vínculos de plantilla y, opcionalmente, usar especificaciones de plantilla para almacenar las plantillas en Azure. Las especificaciones de plantilla no son necesarias para usar pilas de implementación.
    • Bloqueos: la pila de implementación DenySettingsMode permite bloquear cambios no deseados mediante DenySettingsMode (similar a los bloqueos de Blueprint). Puede configurarlos mediante la CLI de Azure o Azure PowerShell. Para ello, necesita los roles correspondientes para poder establecer la configuración de denegación. Para obtener información más detallada, consulte Pilas de implementación.
  3. Opcionalmente, puede crear especificaciones de plantilla para las plantillas de ARM convertidas o los archivos de Bicep. Las especificaciones de plantilla permiten almacenar plantillas y sus versiones en el entorno de Azure, lo que simplifica el uso compartido de las plantillas en toda la organización. Las pilas de implementación permiten implementar definiciones de especificaciones de plantilla, plantillas ARM o archivos Bicep en un ámbito de destino especificado.

Ejemplo

El siguiente archivo de Bicep es un archivo de migración de ejemplo.

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

Migración a especificaciones de plantilla

Si quiere almacenar y crear versiones de las plantillas convertidas en Azure en lugar de implementarlas directamente, publíquelas como especificaciones de plantilla e implemente la especificación de plantilla con una pila de implementación. Las especificaciones de plantilla sustituyen la función de almacenamiento de artefactos y control de versiones que desempeñaban las definiciones de blueprint. Para obtener instrucciones paso a paso, consulte Migración de Azure Blueprints a especificaciones de plantilla.

Pasos siguientes