使用 Bicep 创建资源组
可以使用 Bicep 创建新的资源组。 本文介绍如何在部署到订阅或其他资源组时创建资源组。
定义资源组
若要使用 Bicep 创建资源组,请为该资源组定义具有名称和位置的 Microsoft.Resources/resourceGroups 资源。
以下示例演示用于创建空资源组的 Bicep 文件。 请注意,其目标范围是 subscription
。
targetScope='subscription'
param resourceGroupName string
param resourceGroupLocation string
resource newRG 'Microsoft.Resources/resourceGroups@2022-09-01' = {
name: resourceGroupName
location: resourceGroupLocation
}
若要将 Bicep 文件部署到订阅,请使用订阅级别部署命令。
对于 Azure CLI,请使用 az deployment sub create。
az deployment sub create \
--name demoSubDeployment \
--location chinanorth2 \
--template-file resourceGroup.bicep \
--parameters resourceGroupName=demoResourceGroup resourceGroupLocation=chinanorth2
对于 PowerShell 部署命令,请使用 New-AzDeployment 或其别名 New-AzSubscriptionDeployment
。
New-AzSubscriptionDeployment `
-Name demoSubDeployment `
-Location chinanorth2 `
-TemplateFile resourceGroup.bicep `
-resourceGroupName demoResourceGroup `
-resourceGroupLocation chinanorth2
创建资源组和资源
若要创建资源组并向其部署资源,请添加一个模块,用于定义要部署到资源组的资源。 将该模块的范围设置为你创建的资源组的符号名称。 最多可部署到 800 个资源组。
以下示例演示用于创建资源组的 Bicep 文件,并将存储帐户部署到该资源组。 请注意,模块的 scope
属性设置为 newRG
,这是正在创建的资源组的符号名称。
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
}
}
模块使用名为 storage.bicep 的 Bicep 文件,其中包含以下内容:
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: {}
}
在资源组部署期间创建资源组
你还可以在资源组级别部署期间创建资源组。 对于这种情况,将部署到现有资源组,并切换到订阅级别以创建资源组。 以下 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=chinanorth
对于 PowerShell 部署命令,请使用 New-AzResourceGroupDeployment。
New-AzResourceGroupDeployment `
-Name demoRGDeployment `
-ResourceGroupName ExampleGroup `
-TemplateFile main.bicep `
-secondResourceGroup newRG `
-secondSubscriptionID {sub-id} `
-secondLocation chinanorth
后续步骤
若要了解其他范围,请参阅: