Implementación de plantillas en varios ámbitos
Ahora comprende los distintos ámbitos en los que puede implementar recursos. En esta unidad, aprenderá a empezar a escribir archivos de Bicep para implementarlos en estos ámbitos.
Especificación del ámbito de destino de un archivo de Bicep
Bicep debe conocer el ámbito en el que se implementa un archivo. Esta información es importante porque Bicep debe asegurarse de que los recursos que va a implementar son válidos para el ámbito que está usando. Por ejemplo, la extensión de Bicep para Visual Studio Code le advierte si intenta definir un recurso en un ámbito no admitido.
Use la palabra clave targetScope
para indicar a Bicep que los recursos del archivo son para un ámbito específico. Este es un ejemplo de un archivo de Bicep que implementa recursos en el ámbito del grupo de administración:
targetScope = 'managementGroup'
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
// ...
}
Tenga en cuenta que le indica a Bicep que implemente los recursos en el ámbito de un grupo de administración, pero no está especificando qué grupo de administración. Al implementar la plantilla, indica a Bicep exactamente en qué grupo de administración quiere implementar los recursos. Los cmdlets de la CLI de Azure y Azure PowerShell proporcionan argumentos para especificar esta información.
Puede establecer para el archivo targetScope
en resourceGroup
, subscription
, managementGroup
o tenant
. Si no especifica un ámbito de destino, Bicep asume el ámbito resourceGroup
.
Crear grupos de recursos
Ahora que comprende cómo crear implementaciones en varios ámbitos, intente aplicar este conocimiento a la creación de un grupo de recursos, que es un recurso con ámbito de suscripción:
targetScope = 'subscription'
resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
name: 'example-resource-group'
location: 'westus'
}
En este ejemplo, observe que el archivo de Bicep tiene un targetScope
de subscription
, lo que significa que Bicep considera todos los recursos del archivo como con ámbito de suscripción de manera predeterminada.
Nota:
Verá cómo usar Bicep para crear suscripciones y grupos de administración de Azure más adelante en este módulo.
Envío de una implementación
Al iniciar una implementación, debe indicar a Azure en qué ámbito quiere implementarla. Esto significa que usa un comando de la CLI de Azure diferente para cada ámbito de implementación, como se muestra aquí:
Para implementar en este ámbito: | Ejecute este comando de la CLI de Azure: |
---|---|
Resource group | az deployment group create |
Subscription | az deployment sub create |
Grupo de administración | az deployment mg create |
Inquilino | az deployment tenant create |
Al iniciar una implementación, debe indicar a Azure en qué ámbito quiere implementarla. Esto significa que usa un cmdlet de PowerShell diferente para cada ámbito de implementación, como se muestra aquí:
Para implementar en este ámbito: | Use este cmdlet de PowerShell: |
---|---|
Resource group | New-AzResourceGroupDeployment |
Subscription | New-AzSubscriptionDeployment |
Grupo de administración | New-AzManagementGroupDeployment |
Inquilino | New-AzTenantDeployment |
Azure almacena metadatos sobre cada implementación. A diferencia de las implementaciones en el ámbito del grupo de recursos, hay cierta información que debe proporcionar al implementar en otros ámbitos para que Azure pueda almacenar los metadatos correctamente:
Ubicación: los metadatos de implementación deben almacenarse en una ubicación que especifique. No es necesario especificar una ubicación para las implementaciones de ámbito del grupo de recursos, ya que los metadatos de implementación usan la misma ubicación que el grupo de recursos. Sin embargo, al crear una implementación en el ámbito de suscripción, grupo de administración o inquilino, debe especificar la región de Azure en la que se almacenan los metadatos de implementación. Los recursos de la implementación en estos ámbitos no siempre se crean en la misma ubicación que especificó para los metadatos.
Nombre: todas las implementaciones de Azure tienen un nombre. Puede solicitar a Azure información sobre una implementación usando su nombre. Al usar la CLI de Azure o Azure PowerShell para enviar una implementación, no es necesario especificar el nombre. Pero si no lo hace, el nombre de archivo de plantilla se usa como nombre de implementación.
La combinación del ámbito, la ubicación y el nombre de la implementación debe ser única. Por ejemplo, supongamos que crea una implementación de suscripción denominada my-deployment
y usa la ubicación Este de EE. UU. para almacenar sus metadatos. No se puede crear otra implementación en la misma suscripción denominada my-deployment
, incluso si se encuentra en una ubicación diferente, como Oeste de Europa. Si crea otra implementación denominada my-deployment
en Este de EE. UU., sobrescribe la implementación existente.