Resourcegroepen maken met bicep

U kunt Bicep gebruiken om een nieuwe resourcegroep te maken. In dit artikel wordt beschreven hoe u resourcegroepen maakt wanneer u implementeert in het abonnement of in een andere resourcegroep.

Resourcegroep definiëren

Als u een resourcegroep wilt maken met Bicep, definieert u een resource Microsoft.Resources/resourceGroups met een naam en locatie voor de resourcegroep.

In het volgende voorbeeld ziet u een Bicep-bestand waarmee een lege resourcegroep wordt gemaakt. U ziet dat het doelbereik is subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Als u het Bicep-bestand wilt implementeren in een abonnement, gebruikt u de implementatieopdrachten op abonnementsniveau.

Gebruik az deployment sub create voor Azure CLI.

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

Voor de PowerShell-implementatieopdracht gebruikt u New-AzDeployment of de bijbehorende alias New-AzSubscriptionDeployment.

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

Resourcegroep en resources maken

Als u de resourcegroep wilt maken en hierin resources wilt implementeren, voegt u een module toe die de resources definieert die in de resourcegroep moeten worden geïmplementeerd. Stel het bereik voor de module in op de symbolische naam voor de resourcegroep die u maakt. U kunt maximaal 800 resourcegroepen implementeren.

In het volgende voorbeeld ziet u een Bicep-bestand waarmee een resourcegroep wordt gemaakt en een opslagaccount wordt geïmplementeerd in de resourcegroep. U ziet dat de scope eigenschap voor de module is ingesteld op newRG, wat de symbolische naam is voor de resourcegroep die wordt gemaakt.

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

De module maakt gebruik van een Bicep-bestand met de naam storage.bicep met de volgende inhoud:

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

Resourcegroep maken tijdens de implementatie van de resourcegroep

U kunt ook een resourcegroep maken tijdens de implementatie van een resourcegroep. Voor dat scenario implementeert u in een bestaande resourcegroep en schakelt u over naar het niveau van een abonnement om een resourcegroep te maken. Met het volgende Bicep-bestand wordt een nieuwe resourcegroep gemaakt in het opgegeven abonnement. De module waarmee de resourcegroep wordt gemaakt, is hetzelfde als het voorbeeld waarmee de resourcegroep wordt gemaakt.

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

Als u wilt implementeren in een resourcegroep, gebruikt u de implementatieopdrachten van de resourcegroep.

Gebruik az deployment group create voor Azure CLI.

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

Voor de PowerShell-implementatieopdracht gebruikt u New-AzResourceGroupDeployment.

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

Volgende stappen

Zie voor meer informatie over andere bereiken: