Создание групп ресурсов с помощью Bicep

Для создания новой группы ресурсов можно использовать Bicep. В этой статье показано, как создавать группы ресурсов при развертывании в подписке или другой группе ресурсов.

Определение группы ресурсов

Чтобы создать группу ресурсов с помощью Bicep, определите ресурс Microsoft.Resources/resourceGroups с именем и расположением для группы ресурсов.

В следующем примере показан файл Bicep, который создает пустую группу ресурсов. Обратите внимание, что его целевая область subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Чтобы развернуть Bicep-файл в подписке, используйте команды развертывания на уровне подписки.

Для Azure CLI используйте az deployment sub create.

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

В качестве команды развертывания в PowerShell используйте New-AzDeployment или ее альтернативу New-AzSubscriptionDeployment.

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

Создание ресурсов и группы ресурсов

Чтобы создать группу ресурсов и развернуть в ней ресурсы, добавьте модуль, определяющий ресурсы для развертывания в группе ресурсов. Задайте для области модуля символическое имя созданной вами группы ресурсов. Можно выполнить развертывание до 800 групп ресурсов.

В следующем примере показан файл Bicep, который создает группу ресурсов и развертывает учетную запись хранения в группе ресурсов. Обратите внимание, что для свойства модуля scope установлено значение newRG, которое является символическим именем создаваемой группы ресурсов.

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

Модуль использует файл Bicep с именем storage.bicep с указанным ниже содержимым.

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

Создание группы ресурсов во время развертывания группы ресурсов

Вы также можете создать группу ресурсов во время развертывания уровня группы ресурсов. Для этого сценария необходимо развернуть в существующей группе ресурсов и перейти на уровень подписки, чтобы создать группу ресурсов. Следующий файл Bicep создает новую группу ресурсов в указанной подписке. Модуль, создающий группу ресурсов, совпадает с примером, который создает группу ресурсов.

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

Для развертывания в группе ресурсов используются команды развертывания группы ресурсов.

Для Azure CLI используется команда 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

Для команды развертывания PowerShell используется команда New-AzResourceGroupDeployment.

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

Следующие шаги

Сведения о других областях приведены в следующих статьях: