Criar grupos de recursos usando o Bicep

Você pode usar o Bicep para criar um novo grupo de recursos. Este artigo mostra como criar grupos de recursos ao implantar na assinatura ou em outro grupo de recursos.

Definir resource group

Para criar um grupo de recursos com o Bicep, defina um recurso Microsoft.Resources/resourceGroups com um nome e um local para o grupo de recursos.

O exemplo a seguir mostra um arquivo Bicep que cria um grupo de recursos vazio. Observe que seu escopo alvo é subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Para implantar o arquivo Bicep em uma assinatura, use os comandos de implantação no nível de assinatura.

Para a CLI do Azure, use az deployment sub create.

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

Para o comando de implantação do PowerShell, use New-AzDeployment ou seu alias New-AzSubscriptionDeployment.

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

Criar grupo de recursos e recursos

Para criar o grupo de recursos e implantar recursos nele, adicione um módulo que defina os recursos a serem implantados no grupo de recursos. Defina o escopo do módulo como o nome simbólico do grupo de recursos criado. Você pode implantar em até 800 grupos de recursos.

O exemplo a seguir mostra um arquivo Bicep que cria um grupo de recursos e implanta uma conta de armazenamento no grupo de recursos. Observe que a scope propriedade do módulo está definida como newRG, que é o nome simbólico para o grupo de recursos que está sendo criado.

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

O módulo usa um arquivo Bicep chamado storage.bicep com o seguinte conteúdo:

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

Criar grupo de recursos durante a implantação do grupo de recursos

Você também pode criar um grupo de recursos durante uma implantação no nível do grupo de recursos. Para esse cenário, você implanta em um grupo de recursos existente e alterna para o nível de uma assinatura para criar um grupo de recursos. O seguinte arquivo Bicep cria um novo grupo de recursos na assinatura especificada. O módulo que cria o grupo de recursos é o mesmo que o exemplo que cria o grupo de recursos.

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

Para implantar em um grupo de recursos, use os comandos de implantação do grupo de recursos.

Para a CLI do Azure, use 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

Para o comando de implantação do PowerShell, use New-AzResourceGroupDeployment.

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

Próximos passos

Para saber mais sobre outros escopos, consulte: