Criar grupos de recursos com o Bicep

Pode utilizar o Bicep para criar um novo grupo de recursos. Este artigo mostra-lhe como criar grupos de recursos ao implementar na subscrição ou noutro grupo de recursos.

Definir grupo de recursos

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

O exemplo seguinte mostra um ficheiro Bicep que cria um grupo de recursos vazio. Repare que o âmbito de destino é subscription.

targetScope='subscription'

param resourceGroupName string
param resourceGroupLocation string

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

Para implementar o ficheiro Bicep numa subscrição, utilize os comandos de implementação ao nível da subscrição.

Para a CLI do Azure, utilize 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 implementação do PowerShell, utilize New-AzDeployment ou o respetivo alias New-AzSubscriptionDeployment.

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

Criar grupos de recursos e recursos

Para criar o grupo de recursos e implementar recursos no mesmo, adicione um módulo que defina os recursos a implementar no grupo de recursos. Defina o âmbito do módulo para o nome simbólico do grupo de recursos que criar. Pode implementar até 800 grupos de recursos.

O exemplo seguinte mostra um ficheiro Bicep que cria um grupo de recursos e implementa uma conta de armazenamento no grupo de recursos. Tenha em atenção que a scope propriedade do módulo está definida como newRG, que é o nome simbólico do grupo de recursos que está a ser criado.

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

O módulo utiliza um ficheiro Bicep com o nome storage.bicep com os seguintes conteúdos:

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

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

Também pode criar um grupo de recursos durante uma implementação ao nível do grupo de recursos. Para esse cenário, vai implementar num grupo de recursos existente e mudar para o nível de uma subscrição para criar um grupo de recursos. O seguinte ficheiro Bicep cria um novo grupo de recursos na subscrição 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 implementar num grupo de recursos, utilize os comandos de implementação do grupo de recursos.

Para a CLI do Azure, utilize 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 implementação do PowerShell, utilize New-AzResourceGroupDeployment.

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

Passos seguintes

Para saber mais sobre outros âmbitos, consulte: