Создание групп ресурсов с помощью 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
Следующие шаги
Сведения о других областях приведены в следующих статьях: