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

Este guia de início rápido guia você pelas etapas para criar um arquivo Bicep com Visual Studio Code. Você cria uma conta de armazenamento e uma rede virtual. Você também aprende como a extensão Bicep simplifica o desenvolvimento ao fornecer segurança de tipo, validação de sintaxe e preenchimento automático.

Uma experiência de criação parecida também tem suporte no Visual Studio. Confira Guia de início rápido: criar arquivos Bicep com o Visual Studio.

Pré-requisitos

Se você não tiver 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ê tem o Visual Studio Code e a extensão Bicep. Você também terá a CLI do Azure mais recente ou o módulo do Azure PowerShell mais recente.

Adicionar snippet de código do recurso

O VS Code com a extensão Bicep simplifica o desenvolvimento ao fornecer snippets de código predefinidos. 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 novo arquivo chamado main.bicep.

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

Screenshot of adding snippet for virtual network.

Dica

Se você não vir essas opções de intelliSense no VS Code, verifique se instalou a extensão Bicep, conforme especificado no 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, mas você não tem opções de intelliSense até que ele esteja totalmente carregado. 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 ondulados. 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.

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

Screenshot of updating API version.

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, name não é um nome muito bom para a rede virtual. Altere a propriedade name para examplevnet.

name: 'exampleVNet'

Adicionar parâmetro

O snippet de código que você adicionou na última seção perde uma definição de parâmetro.

No topo do arquivo, adicione:

param location

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

Screenshot of adding string type to parameter.

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

param location string = resourceGroup().location

Para obter mais informações sobre a função usada no valor padrão, consulte resourceGroup().

Adicione outro parâmetro para o nome da conta de armazenamento com um valor padrão:

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

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

Esse parâmetro funciona bem, mas as contas de armazenamento têm limites de comprimento do nome. O nome deve conter no mínimo três e no máximo 24 caracteres. Para especificar esses requisitos, adicione 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.

Screenshot of adding decorators to parameter.

Adicione os dois decoradores e especifique os limites de caracteres:

@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 estiverem implantando o arquivo Bicep a entender o valor a ser fornecido.

@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 storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

O parâmetro está pronto para uso.

Adicionar recurso

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

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

resource exampleStorage

exampleStorage é um nome simbólico para o recurso sendo implantado. 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.

Screenshot of selecting storage accounts for resource type.

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

Screenshot of select API version for resource type.

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.

Screenshot of adding required properties.

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 exampleStorage 'Microsoft.Storage/storageAccounts@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Você está quase lá. Agora basta fornecer valores para essas propriedades.

Mais uma vez, 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 criado anteriormente. Ao adicionar sku.name e kind, o IntelliSense apresentará as opções válidas.

Quando terminar, você terá:

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

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'exampleVNet'
  location: resourceGroup().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@2021-02-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Para obter mais informações sobre a sintaxe Bicep, confira Estrutura Bicep.

Visualizar recursos

Você pode exibir uma representação dos recursos do seu arquivo.

No canto superior direito, selecione o botão do visualizador para abrir o Bicep Visualizer.

Screenshot of Bicep Visualizer.

O visualizador mostra os recursos definidos no arquivo Bicep com as informações de dependência do recurso. Os dois recursos definidos neste início rápido não têm relação de dependência, por isso você não vê um conector entre eles.

Screenshot of Bicep Visualizer diagram.

Implante o arquivo Bicep

  1. Clique com o botão direito do mouse no arquivo Bicep dentro do VSCode e selecione Implantar arquivo Bicep.

    Screenshot of Deploy Bicep file.

  2. Na caixa de texto Insira o nome para implantação, digite deployStorageAndVNete pressione [ENTER].

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

  4. Insira exampleRG como o nome do grupo de recursos e pressione [ENTER].

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

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

    Screenshot of Select parameter file.

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.

Também é possível implantar o arquivo Bicep usando a CLI do Azure ou o Azure PowerShell:

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 indicando que ela 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