Udostępnij za pośrednictwem


Tworzenie grup zasobów przy użyciu Bicep

Możesz użyć Bicep, aby utworzyć nową grupę zasobów. W tym artykule przedstawiono sposób tworzenia grup zasobów podczas wdrażania w subskrypcji lub innej grupie zasobów.

Definiowanie grupy zasobów

Aby utworzyć grupę zasobów za pomocą Bicep, zdefiniuj zasób Microsoft.Resources/resourceGroups o nazwie i lokalizacji dla grupy zasobów.

W poniższym przykładzie pokazano plik Bicep, który tworzy pustą grupę zasobów. Zwróć uwagę, że jego zakres docelowy to subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Aby wdrożyć plik Bicep w subskrypcji, użyj poleceń wdrażania na poziomie subskrypcji.

W przypadku interfejsu wiersza polecenia platformy Azure użyj polecenia az deployment sub create.

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

W przypadku polecenia wdrażania programu PowerShell użyj polecenia New-AzDeployment lub jego aliasu New-AzSubscriptionDeployment.

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

Tworzenie grupy zasobów i zasobów

Aby utworzyć grupę zasobów i wdrożyć w niej zasoby, dodaj moduł definiujący zasoby do wdrożenia w grupie zasobów. Ustaw zakres modułu na nazwę symboliczną utworzonej grupy zasobów. Można wdrożyć maksymalnie 800 grup zasobów.

W poniższym przykładzie przedstawiono plik Bicep, który tworzy grupę zasobów i wdraża konto magazynu w grupie zasobów. Zwróć uwagę, że scope właściwość modułu jest ustawiona na newRG, czyli symboliczną nazwę tworzonej grupy zasobów.

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

Moduł używa pliku Bicep o nazwie storage.bicep z następującą zawartością:

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

Tworzenie grupy zasobów podczas wdrażania grupy zasobów

Grupę zasobów można również utworzyć podczas wdrażania na poziomie grupy zasobów. W tym scenariuszu wdrożysz istniejącą grupę zasobów i przejdziesz na poziom subskrypcji, aby utworzyć grupę zasobów. Poniższy plik Bicep tworzy nową grupę zasobów w określonej subskrypcji. Moduł, który tworzy grupę zasobów, jest taki sam jak w przykładzie, który tworzy grupę zasobów.

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

Aby wdrożyć w grupie zasobów, użyj poleceń wdrażania grupy zasobów.

W przypadku interfejsu wiersza polecenia platformy Azure użyj polecenia 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

W przypadku polecenia wdrażania programu PowerShell użyj polecenia New-AzResourceGroupDeployment.

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

Następne kroki

Aby dowiedzieć się więcej o innych zakresach, zobacz: