Creación de grupos de recursos mediante Bicep

Puede usar Bicep para crear un nuevo grupo de recursos. En este artículo, se muestra cómo crear grupos de recursos al realizar implementaciones en la suscripción u otro grupo de recursos.

Definir grupo de recursos

Para crear un grupo de recursos con Bicep, defina un recurso Microsoft.Resources/resourceGroups con un nombre y una ubicación para el grupo de recursos.

En el ejemplo siguiente, se muestra un archivo de Bicep que crea un grupo de recursos vacío. Observe que su ámbito de destino es subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

resource newRG 'Microsoft.Resources/resourceGroups@2022-09-01' = {
  name: resourceGroupName
  location: resourceGroupLocation
}

Para implementar el archivo de Bicep en una suscripción, use los comandos de implementación de nivel de suscripción.

Para la CLI de Azure, use az deployment sub create.

az deployment sub create \
  --name demoSubDeployment \
  --location centralus \
  --template-file resourceGroup.bicep \
  --parameters resourceGroupName=demoResourceGroup resourceGroupLocation=centralus

Para el comando de implementación de PowerShell, use New-AzDeployment o su alias New-AzSubscriptionDeployment.

New-AzSubscriptionDeployment `
  -Name demoSubDeployment `
  -Location centralus `
  -TemplateFile resourceGroup.bicep `
  -resourceGroupName demoResourceGroup `
  -resourceGroupLocation centralus

Creación del grupo de recursos y los recursos

Para crear el grupo de recursos e implementar recursos en él, agregue un módulo que defina los recursos que se van a implementar en el grupo de recursos. Establezca el ámbito del módulo en el nombre simbólico del grupo de recursos que cree. Puede implementar en hasta 800 grupos de recursos.

En el ejemplo siguiente, se muestra un archivo de Bicep que crea un grupo de recursos y se implementa una cuenta de almacenamiento en el grupo de recursos. Observe que la propiedad scope del módulo está establecida en newRG, que es el nombre simbólico del grupo de recursos que se está creando.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string
param storageName string
param storageLocation string

resource newRG 'Microsoft.Resources/resourceGroups@2022-09-01' = {
  name: resourceGroupName
  location: resourceGroupLocation
}

module storageAcct 'storage.bicep' = {
  name: 'storageModule'
  scope: newRG
  params: {
    storageLocation: storageLocation
    storageName: storageName
  }
}

El módulo usa un archivo de Bicep denominado storage.bicep con el contenido siguiente:

param storageLocation string
param storageName string

resource storageAcct 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageName
  location: storageLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'Storage'
  properties: {}
}

Creación de un grupo de recursos durante la implementación del grupo de recursos

También puede crear un grupo de recursos durante una implementación de nivel de grupo de recursos. En ese escenario, usted realiza la implementación en un grupo de recursos existente y cambia al nivel de una suscripción para crear un grupo de recursos. El siguiente archivo de Bicep crea un nuevo grupo de recursos en la suscripción especificada. El módulo que crea el grupo de recursos es el mismo que el ejemplo que crea el grupo de recursos.

param secondResourceGroup string
param secondSubscriptionID string = ''
param secondLocation string

// module deployed at subscription level
module newRG 'resourceGroup.bicep' = {
  name: 'newResourceGroup'
  scope: subscription(secondSubscriptionID)
  params: {
    resourceGroupName: secondResourceGroup
    resourceGroupLocation: secondLocation
  }
}

Para implementar en un grupo de recursos, use los comandos de implementación de grupos de recursos.

Para la CLI de Azure, use az deployment group create.

az deployment group create \
  --name demoRGDeployment \
  --resource-group ExampleGroup \
  --template-file main.bicep \
  --parameters secondResourceGroup=newRG secondSubscriptionID={sub-id} secondLocation=westus

Para el comando de implementación de PowerShell, use New-AzResourceGroupDeployment.

New-AzResourceGroupDeployment `
  -Name demoRGDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateFile main.bicep `
  -secondResourceGroup newRG `
  -secondSubscriptionID {sub-id} `
  -secondLocation westus

Pasos siguientes

Para obtener más información sobre otros ámbitos, consulte: