Início rápido: Criar ficheiros Bicep com o Visual Studio

Este início rápido guia-o pelos passos para criar um ficheiro Bicep com o Visual Studio. Você cria uma conta de armazenamento e uma rede virtual. Também se aprende como a extensão Bicep simplifica o desenvolvimento ao fornecer segurança de tipos, validação sintática e autocompletação.

Experiências semelhantes de autoria também são suportadas no Visual Studio Code. Veja Quickstart: Criar ficheiros Bicep com Visual Studio Code.

Pré-requisitos

Observação

Para que todos os diagnósticos gerados por Bicep (Erros, Avisos e Mensagens Informativas) sejam corretamente apresentados como diagnósticos nativos do MSBuild, configure BicepTreatInfoAsWarnings no seu ficheiro de projeto. Por exemplo:

<Project Sdk="Microsoft.Build.NoTargets">
  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <BicepTreatInfoAsWarnings>true</BicepTreatInfoAsWarnings>
  </PropertyGroup>
</Project>

Adicionar fragmento de recurso

Inicie Visual Studio e crie um novo ficheiro chamado main.bicep.

O Visual Studio, com a extensão Bicep, simplifica o desenvolvimento ao fornecer excertos pré-definidos. Neste início rápido, você adiciona um trecho que cria uma rede virtual.

Em main.bicep, digite vnet. Selecione res-vnet na lista e pressione [TAB] ou [ENTER].

Captura de tela da adição de um trecho para rede virtual.

Tip

Se não vires essas opções intellisense no Visual Studio, certifica-te de que instalaste a extensão Bicep conforme especificado em Pré-requisitos. Se já instalou a extensão, dê algum tempo ao serviço de linguagem Bicep para iniciar após abrir o ficheiro Bicep. Geralmente começa rapidamente, mas não terás opções intellisense até que inicie.

O seu ficheiro Bicep contém agora o seguinte código:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2025-01-01' = {
  name: 'name'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

Este trecho contém todos os valores necessários para definir uma rede virtual. No entanto, você pode modificar esse código para atender às suas necessidades. Por exemplo, name não é um ótimo nome para a rede virtual. Altere a name propriedade para exampleVnet.

name: 'exampleVnet'

Observe que o local tem um sublinhado vermelho encaracolado. Isso indica um problema. Passe o cursor sobre a localização. A mensagem de erro é - O nome "local" não existe no contexto atual. Criaremos um parâmetro de localização na próxima seção.

Adicionar parâmetros

Agora, adicionamos dois parâmetros para o nome da conta de armazenamento e o local. Na parte superior do ficheiro, adicione:

param storageName

Quando você adiciona um espaço após storageName, observe que o intellisense oferece os tipos de dados disponíveis para o parâmetro. Selecione string.

Captura de tela mostrando a adição do tipo de cadeia de caracteres ao parâmetro.

Você tem o seguinte parâmetro:

param storageName string

Esse parâmetro funciona bem, mas as contas de armazenamento têm limites no comprimento do nome. O nome deve ter pelo menos três caracteres e não mais de 24 caracteres. Você pode especificar esses requisitos adicionando decoradores ao parâmetro.

Adicione uma linha acima do parâmetro e digite @. Você vê os decoradores disponíveis. Observe que há decoradores para minLength e maxLength.

Captura de tela da adição de decoradores ao parâmetro.

Adicione ambos os decoradores e especifique os limites de caracteres, como mostrado abaixo:

@minLength(3)
@maxLength(24)
param storageName string

Você também pode adicionar uma descrição para o parâmetro. Inclua informações que ajudem as pessoas que utilizam o ficheiro Bicep a perceber o valor que podem oferecer.

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string

O parâmetro de nome da conta de armazenamento está pronto para uso.

Adicione outro parâmetro de localização:

param location string = resourceGroup().location

Adicionar recurso

Em vez de usar um trecho para definir a conta de armazenamento, usamos o intellisense para definir os valores. O Intellisense torna esta etapa mais fácil do que ter que digitar manualmente os valores.

Para definir um recurso, use a resource palavra-chave. Abaixo da sua rede virtual, digite exemplo de recursoStorage:

resource exampleStorage

exampleStorage é um nome simbólico para o recurso que você está implantando. Pode usar este nome para referenciar o recurso noutras partes do seu ficheiro Bicep.

Quando você adiciona um espaço após o nome simbólico, uma lista de tipos de recursos é exibida. Continue digitando armazenamento até que você possa selecioná-lo entre as opções disponíveis.

Captura de tela mostrando a seleção de contas de armazenamento para o tipo de recurso.

Depois de selecionar Microsoft. Storage/storageAccounts, são apresentadas as versões disponíveis da API. Selecione 2021-09-01 ou a versão mais recente da API. Recomendamos o uso da versão mais recente da API.

Captura de tela mostrando a seleção da versão da API para o tipo de recurso.

Após a cotação única para o tipo de recurso, adicione = e um espaço. São apresentadas opções para adicionar propriedades ao recurso. Selecione as propriedades necessárias.

Captura de ecrã a mostrar a adição das propriedades necessárias.

Esta opção adiciona todas as propriedades para o tipo de recurso que são necessárias para a implantação. Depois de selecionar essa opção, sua conta de armazenamento tem as seguintes propriedades:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

Há quatro espaços reservados no código. Utilize [TAB] para percorrê-los e inserir os valores. Mais uma vez, o IntelliSense ajuda-lhe. Defina name como storageName, que é o parâmetro que contém um nome para a conta de armazenamento. Para location, defina-o como location. Ao adicionar o nome e o tipo de SKU, o intellisense apresenta as opções válidas.

Quando terminar, você terá:

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2025-01-01' = {
  name: storageName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
  name: storageName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Para mais informações sobre a sintaxe Bicep, consulte Estrutura do Bicep.

Implementar o ficheiro Bicep

A implementação de ficheiros Bicep ainda não é possível a partir do Visual Studio. Pode implementar o ficheiro Bicep usando CLI do Azure ou Azure PowerShell:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename

Quando a implantação terminar, você verá uma mensagem indicando que a implantação foi bem-sucedida.

Limpeza de recursos

Quando os recursos do Azure deixarem de ser necessários, use o CLI do Azure ou o módulo Azure PowerShell para eliminar o grupo de recursos de início rápido.

az group delete --name exampleRG

Próximos passos