Compartilhar via


Início Rápido: criar arquivos Bicep com o Visual Studio Code

Esse início rápido orienta você sobre como usar o Visual Studio Code para criar um arquivo Bicep. Você cria uma conta de armazenamento e uma rede virtual. Você também aprenderá como a extensão Bicep fornece segurança de tipos, validação de sintaxe e preenchimento automático para simplificar o desenvolvimento.

O Visual Studio dá suporte a uma experiência de criação semelhante. Confira Início Rápido: Criar arquivos Bicep com o Visual Studio para obter mais informações.

Pré-requisitos

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Para configurar seu ambiente para o desenvolvimento do Bicep, confira Instalar ferramentas do Bicep. Depois de concluir essas etapas, você terá o Visual Studio Code e a extensão Bicep instalados. Você também terá a versão mais recente da CLI do Azure ou do módulo do Azure PowerShell.

Adicionar snippet de código do recurso

O Visual Studio Code com a extensão Bicep fornece trechos predefinidos para simplificar o desenvolvimento. Neste guia de início rápido, você adiciona um snippet de código que cria uma rede virtual.

Inicie o Visual Studio Code e crie um arquivo chamado main.bicep. Em main.bicep, digite vnet, selecione res-vnet na lista e pressione TAB ou ENTER.

Captura de tela da adição do snippet da rede virtual.

Dica

Se você não vir essas opções do IntelliSense no Visual Studio Code, verifique se a extensão Bicep está instalada conforme especificado em Pré-requisitos. Se você tiver instalado a extensão, aguarde algum tempo até que o serviço de linguagem Bicep seja iniciado após abrir o arquivo Bicep. Normalmente, ele é iniciado rapidamente e você não terá opções do IntelliSense até que ele seja iniciado. Uma notificação no canto inferior direito indica que o serviço está sendo iniciado. Quando essa notificação desaparecer, o serviço estará em execução.

O arquivo Bicep agora contém o código a seguir:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-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'
        }
      }
    ]
  }
}

Nesse snippet, você encontra todos os valores necessários para definir uma rede virtual. Você pode notar dois sublinhados em forma de colchetes. Um amarelo indica um aviso relacionado a uma versão de API desatualizada, enquanto um sublinhado vermelho sinaliza um erro causado por uma definição de parâmetro ausente. O linter Bicep verifica os erros de sintaxe e as violações de melhores práticas em arquivos Bicep. Passe o cursor sobre @2019-11-01, um painel pop-up mostra Use uma versão mais recente da API para “Microsoft.Network/virtualNetworks”. Selecione Correção rápida no painel pop-up e, em seguida, selecione Substituir por 2024-05-01 para atualizar a versão da API.

Alternativamente, remova @2019-11-01 e substitua por @. Selecione a versão mais antiga da API.

Captura de tela da atualização da versão da API.

Você corrigirá o erro de definição de parâmetro ausente na próxima seção.

Você também pode modificar esse código para atender às suas necessidades. Por exemplo, como name não é um nome claro para a rede virtual, você pode alterar a propriedade name para exampleVnet:

name: 'exampleVNet'

Adicionar parâmetro

O trecho de código que você adicionou na última seção não contém uma definição de parâmetro, location, conforme indicado pelo sublinhado vermelho. No topo do arquivo, adicione:

param location

Ao adicionar um espaço após o local, observe que o IntelliSense oferece os tipos de dados que estão disponíveis para o parâmetro. Selecionar cadeia de caracteres.

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

Dê ao parâmetro um valor padrão:

param location string = resourceGroup().location

A linha anterior atribui o local do grupo de recursos ao recurso de rede virtual. Para obter mais informações sobre a função usada no valor padrão, confira resourceGroup().

Na parte superior do arquivo, adicione outro parâmetro para o nome da conta de armazenamento (que você criará posteriormente no início rápido) com um valor padrão:

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Para obter mais informações, confira Interpolação e uniqueString().

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

Adicione uma linha acima do parâmetro e digite @ . Você verá 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 (por exemplo, 3 e 24 abaixo):

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Também é possível adicionar uma descrição para o parâmetro. Inclua informações que ajudem as pessoas que implantam o arquivo Bicep a entender qual valor fornecer:

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

O parâmetro está pronto para uso.

Adicionar recurso

Em vez de usar um snippet para definir a conta de armazenamento, use o IntelliSense para definir os valores. O IntelliSense torna essa etapa mais fácil do que ter que digitar manualmente os valores.

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

resource storageAccount

storageAccount é um nome simbólico para o recurso que você está implantando. Use esse nome para referenciar o recurso em outras partes do arquivo Bicep.

Ao adicionar um espaço após o nome simbólico, uma lista de tipos de recursos será exibida. Continue digitando storageacc até que seja possível selecioná-lo nas opções disponíveis.

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

Depois de selecionar Microsoft.Storage/storageAccounts, você verá as versões de API disponíveis. Escolha a última versão. Para a captura de tela a seguir, é 2023-05-01.

Captura de tela da versão selecionada da API para o tipo de recurso.

Adicione = e um espaço após a aspa simples para o tipo de recurso. Você verá as opções para adicionar propriedades ao recurso. Selecione required-properties.

Captura de tela da adição das propriedades necessárias.

Com essa opção, são adicionadas todas as propriedades do tipo de recurso que são necessárias para a implantação. Depois de selecionar essa opção, a conta de armazenamento terá as seguintes propriedades:

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Você está quase concluindo, e a próxima etapa é fornecer valores para essas propriedades.

Novamente, o IntelliSense ajuda você. Defina name como storageAccountName, que é o parâmetro que contém um nome para a conta de armazenamento. Para location, defina-o como location, que é um parâmetro que você criou anteriormente. Ao adicionar sku.name e kind, o IntelliSense apresenta as opções válidas.

Para adicionar propriedades opcionais junto com as propriedades obrigatórias, posicione o cursor no local desejado e pressione Ctrl+Espaço. A captura de tela a seguir mostra como o IntelliSense sugere as propriedades disponíveis:

Captura de tela da adição de propriedades adicionais.

Quando terminar, você terá:

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
  name: 'exampleVNet'
  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 storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Para obter mais informações sobre a sintaxe do Bicep, confira Estrutura e sintaxe de arquivos Bicep.

Visualizar recursos

O Visualizador do Bicep mostra uma representação gráfica dos recursos no seu arquivo.

Selecione o botão Visualizador do Bicep no canto superior direito para abrir a ferramenta:

Captura de tela da ferramenta Bicep Visualizer.

Esse visualizador mostra os recursos definidos no arquivo Bicep e os conectores entre suas dependências. Os dois recursos definidos nesse início rápido não têm um relacionamento de dependência, portanto, não há um conector entre eles:

Captura de tela do diagrama do Bicep Visualizer.

Implante o arquivo Bicep

  1. Clique com o botão direito do mouse no arquivo Bicep no Visual Studio Code e selecione Implantar arquivo Bicep.

    Captura de tela da opção Implantar arquivo de bíceps.

  2. Na caixa de texto Insira o nome da implantação, digite deployStorageAndVNet e pressione ENTER.

    Captura de tela da inserção do nome da implantação.

  3. Na caixa de listagem Selecionar Grupo de Recursos na parte superior, selecione Criar novo Grupo de Recursos.

  4. Digite exampleRG como o nome do grupo de recursos e pressione ENTER.

  5. Selecione um local para o grupo de recursos, selecione Central US ou um local de sua escolha e pressione ENTER.

  6. Em Selecionar um arquivo de parâmetros, selecione Nenhum.

São necessários alguns instantes para a criação dos recursos. Para obter mais informações, veja Implantar arquivos Bicep com o Visual Studio Code.

Você também pode usar a CLI do Azure ou o Azure PowerShell para implantar o arquivo Bicep:

az group create --name exampleRG --location eastus

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

Quando a implantação for concluída, você deverá ver uma mensagem descrevendo que a implantação foi bem-sucedida.

Limpar os recursos

Quando os recursos do Azure não forem mais necessários, use o módulo da CLI do Azure ou do Azure PowerShell para excluir o grupo de recursos de início rápido.

az group delete --name exampleRG

Próximas etapas