Guia de início rápido: criar arquivos Bicep com o Visual Studio Code

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

Experiência de criação semelhante também é suportada no Visual Studio. Consulte Guia de início rápido: criar arquivos Bicep com o Visual Studio.

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

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

Adicionar fragmento de recurso

O VS Code com a extensão Bicep simplifica o desenvolvimento fornecendo trechos predefinidos. Neste início rápido, você adiciona um trecho que cria uma rede virtual.

Inicie o Visual Studio Code e crie um novo arquivo chamado main.bicep.

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

Screenshot of adding snippet for virtual network.

Gorjeta

Se você não vir essas opções do intellisense no VS Code, certifique-se de ter instalado a extensão Bicep conforme especificado em Pré-requisitos. Se você tiver instalado a extensão, dê ao serviço de idioma Bicep algum tempo para iniciar depois de abrir o arquivo Bicep. Geralmente começa rapidamente, mas você não tem opções intellisense até que ele comece. Uma notificação no canto inferior direito indica que o serviço está a iniciar. Quando essa notificação desaparece, o serviço está em execução.

Seu arquivo Bicep agora contém o seguinte código:

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

Dentro deste trecho, você encontra todos os valores necessários para definir uma rede virtual. Você pode notar dois sublinhados encaracolados. Um amarelo denota um aviso relacionado a uma versão desatualizada da API, enquanto um sublinhado vermelho encaracolado sinaliza um erro causado por uma definição de parâmetro ausente.

Remova @2019-11-01e substitua-o por @. Selecione a versão mais recente 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 ótimo nome para a rede virtual. Altere a name propriedade para examplevnet.

name: 'exampleVNet'

Adicionar parâmetro

O trecho de código adicionado na última seção perde uma definição de parâmetro.

Na parte superior do ficheiro, adicione:

param location

Quando você adiciona um espaço após o local, observe que o intellisense oferece os tipos de dados disponíveis para o parâmetro. Selecione a 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 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.

Screenshot of adding decorators to parameter.

Adicione ambos os decoradores e especifique os limites de caracteres:

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

Você também pode adicionar uma descrição para o parâmetro. Inclua informações que ajudem as pessoas que implantam 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)}'

Seus parâmetros estão prontos para uso.

Adicionar recurso

Em vez de usar um trecho para definir a conta de armazenamento, use 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. Você pode usar esse nome para fazer referência ao recurso em outras partes do arquivo Bicep.

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

Screenshot of selecting storage accounts for resource type.

Depois de selecionar Microsoft.Storage/storageAccounts, são apresentadas as versões de API disponíveis. Selecione a versão mais recente. Para a captura de tela a seguir, é 2023-01-01.

Screenshot of select API version for resource type.

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.

Screenshot of adding required properties.

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@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Está quase concluído. Basta fornecer valores para essas propriedades.

Mais uma vez, o intellisense ajuda-o. 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 apresenta as opções válidas.

Quando terminar, você tem:

@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 do bíceps, consulte Estrutura do bíceps.

Visualizar recursos

Você pode exibir uma representação dos recursos em 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 de recursos. Os dois recursos definidos neste início rápido não têm relação de dependência, portanto, você não vê um conector entre os dois recursos.

Screenshot of Bicep Visualizer diagram.

Implantar o arquivo Bicep

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

    Screenshot of Deploy Bicep file.

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

  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 EUA centrais ou um local de sua escolha e pressione [ENTER].

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

    Screenshot of Select parameter file.

Leva alguns momentos para criar os recursos. Para obter mais informações, consulte Implantar arquivos Bicep com o Visual Studio Code.

Você também pode 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 terminar, você verá uma mensagem indicando que a implantação foi bem-sucedida.

Clean up resources (Limpar recursos)

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

az group delete --name exampleRG

Próximos passos