Criar grupos de recursos utilizando o Bicep

Você pode utilizar o Bicep para criar um novo grupo de recursos. Este artigo mostra como você deve criar grupos de recursos quando estiver implantando na assinatura ou em outro grupo de recursos.

Definir o grupo de recursos

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 de destino é 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, utilize os comandos de implantação no nível de assinatura.

Para 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 que você criar. Você pode implantar 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 propriedade scope do módulo é 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 o 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 um 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. Nesse cenário, você deve implantar em um grupo de recursos existente e alternar para o nível de uma assinatura para criar um grupo de recursos. O arquivo Bicep a seguir cria um novo grupo de recursos na assinatura especificada. O módulo que cria o grupo de recursos é o mesmo do 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óximas etapas

Para saber mais sobre outros escopos, consulte: