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.
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.
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.
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.
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.
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.
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.
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:
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:
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:
Implante o arquivo Bicep
Clique com o botão direito do mouse no arquivo Bicep no Visual Studio Code e selecione Implantar arquivo Bicep.
Na caixa de texto Insira o nome da implantação, digite deployStorageAndVNet e pressione ENTER.
Na caixa de listagem Selecionar Grupo de Recursos na parte superior, selecione Criar novo Grupo de Recursos.
Digite exampleRG como o nome do grupo de recursos e pressione ENTER.
Selecione um local para o grupo de recursos, selecione Central US ou um local de sua escolha e pressione ENTER.
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
Explorar Aprender módulos para Bíceps.