Créer des groupes de ressources en utilisant Bicep

Vous pouvez utiliser Bicep pour créer un nouveau groupe de ressources. Cet article vous montre comment créer des groupes de ressources lors d’un déploiement sur l’abonnement ou sur un autre groupe de ressources.

Définir un groupe de ressources

Pour créer un groupe de ressources avec Bicep, définissez une ressource Microsoft.Resources/resourceGroups avec un nom et un emplacement pour le groupe de ressources.

L’exemple suivant montre un fichier Bicep qui crée un groupe de ressources vide. Notez que son étendue cible est subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Pour déployer le fichier Bicep sur un abonnement, utilisez les commandes de déploiement au niveau de l’abonnement.

Pour l’interface de ligne de commande Azure, utilisez az deployment sub create.

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

Pour la commande de déploiement PowerShell, utilisez New-AzDeployment ou son alias New-AzSubscriptionDeployment.

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

Créer un groupe de ressources et ses ressources

Pour créer le groupe de ressources et y déployer des ressources, ajoutez un module qui définit les ressources à déployer dans le groupe de ressources. Définissez l’étendue du module sur le nom symbolique du groupe de ressources que vous créez. Vous pouvez effectuer le déploiement sur jusqu’à 800 groupes de ressources.

L’exemple suivant montre un fichier Bicep qui crée un groupe de ressources et déploie un compte de stockage sur ce groupe de ressources. Notez que la propriété scope du module est définie sur newRG, qui est le nom symbolique du groupe de ressources en cours de création.

targetScope='subscription'

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

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

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

Le module utilise un fichier Bicep nommé storage.bicep avec le contenu suivant :

param storageLocation string
param storageName string

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

Créer un groupe de ressources pendant le déploiement du groupe de ressources

Vous pouvez également créer un groupe de ressources lors d’un déploiement au niveau du groupe de ressources. Pour ce scénario, vous déployez sur un groupe de ressources existant et basculez vers le niveau d’un abonnement pour créer un groupe de ressources. Le fichier Bicep suivant crée un nouveau groupe de ressources dans l’abonnement spécifié. Le module qui crée le groupe de ressources est identique à l’exemple qui crée le groupe de ressources.

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

Pour un déploiement dans un groupe de ressources, utilisez les commandes de déploiement de groupe de ressources.

Pour Azure CLI, utilisez 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

Pour la commande de déploiement PowerShell, utilisez New-AzResourceGroupDeployment.

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

Étapes suivantes

Pour en apprendre plus sur d’autres étendues, consultez :