Skapa resursgrupper med Bicep

Du kan använda Bicep för att skapa en ny resursgrupp. Den här artikeln visar hur du skapar resursgrupper när du distribuerar till prenumerationen eller till en annan resursgrupp.

Definiera resursgrupp

Om du vill skapa en resursgrupp med Bicep definierar du en Microsoft.Resources/resourceGroups-resurs med ett namn och en plats för resursgruppen.

I följande exempel visas en Bicep-fil som skapar en tom resursgrupp. Observera att dess målomfång är subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Om du vill distribuera Bicep-filen till en prenumeration använder du distributionskommandona på prenumerationsnivå.

För Azure CLI använder du az deployment sub create.

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

För PowerShell-distributionskommandot använder du New-AzDeployment eller dess alias New-AzSubscriptionDeployment.

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

Skapa resursgrupp och resurser

Om du vill skapa resursgruppen och distribuera resurser till den lägger du till en modul som definierar de resurser som ska distribueras till resursgruppen. Ange omfånget för modulen till det symboliska namnet för den resursgrupp som du skapar. Du kan distribuera till upp till 800 resursgrupper.

I följande exempel visas en Bicep-fil som skapar en resursgrupp och distribuerar ett lagringskonto till resursgruppen. Observera att scope egenskapen för modulen är inställd på newRG, vilket är det symboliska namnet för resursgruppen som skapas.

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

Modulen använder en Bicep-fil med namnet storage.bicep med följande innehåll:

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

Skapa resursgrupp under distribution av resursgrupp

Du kan också skapa en resursgrupp under en distribution på resursgruppsnivå. I det scenariot distribuerar du till en befintlig resursgrupp och växlar till prenumerationsnivån för att skapa en resursgrupp. Följande Bicep-fil skapar en ny resursgrupp i den angivna prenumerationen. Modulen som skapar resursgruppen är samma som exemplet som skapar resursgruppen.

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

Om du vill distribuera till en resursgrupp använder du distributionskommandona för resursgrupper.

För Azure CLI använder du 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

För PowerShell-distributionskommandot använder du New-AzResourceGroupDeployment.

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

Nästa steg

Mer information om andra omfång finns i: