Guia de início rápido: criar arquivos Bicep com o Visual Studio
Este guia de início rápido percorre as etapas para criar um arquivo Bicep com o Visual Studio. Você criará uma conta de armazenamento e uma rede virtual. Você também aprenderá 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 semelhante também tem suporte no Visual Studio Code. Confira Início Rápido: criar arquivos Bicep com o Visual Studio Code.
Pré-requisitos
- Assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Visual Studio versão 17.3.0 versão prévia 3 ou mais recente. Confira Visual Studio Preview.
- Extensão Bicep do Visual Studio. Confira Visual Studio Marketplace.
- A implantação do arquivo Bicep exige a CLI do Azure mais recente ou o módulo do Azure PowerShell mais recente.
Adicionar snippet de código do recurso
Inicie o Visual Studio e crie um arquivo chamado main.bicep.
O Visual Studio com a extensão Bicep simplifica o desenvolvimento ao fornecer snippets de código predefinidos. Neste guia de início rápido, você adicionará um snippet de código que cria uma rede virtual.
Em main.bicep, digite vnet. Selecione res-vnet na lista, depois pressione Tab ou Enter.
Dica
Se essas opções do IntelliSense não aparecerem no Visual Studio, verifique se você instalou a extensão Bicep, como 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, mas você não terá opções de intelliSense até que ele esteja totalmente carregado.
O arquivo Bicep agora contém o código a seguir:
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-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'
}
}
]
}
}
Esse snippet contém todos os valores necessários para definir uma rede virtual. Contudo, você 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'
Observe que location tem um sublinhado vermelho sinuoso. Isso indica um problema. Focalize location. A mensagem de erro é: O nome "location" não existe no contexto atual. Criaremos um parâmetro de localização na próxima seção.
Adicionar parâmetros
Agora, adicionaremos dois parâmetros para o nome da conta de armazenamento e a localização. Na parte superior do arquivo, adicione:
param storageName
Ao adicionar um espaço após storageName, tenha em mente que o IntelliSense oferece os tipos de dados que estão disponíveis para o parâmetro. Selecionar cadeia de caracteres.
Você tem o seguinte parâmetro:
param storageName string
Esse parâmetro funciona bem, mas as contas de armazenamento têm limites de comprimento do nome. O nome deve conter no mínimo 3 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.
Adicione os dois decoradores e especifique os limites de caracteres, conforme mostrado abaixo:
@minLength(3)
@maxLength(24)
param storageName string
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 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 snippet de código para definir a conta de armazenamento, usaremos o IntelliSense para definir os valores. O IntelliSense torna essa etapa muito 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 storage 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. Selecione 2021-09-01 ou a versão mais recente da API. É recomendável usar a versão mais recente da API.
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 exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 1
location: 2
sku: {
name: 3
}
kind: 4
}
Há quatro espaços reservados no código. Use Tab para percorrê-los e inserir os valores. Mais uma vez, o IntelliSense ajuda você. Defina name
como storageName, que é o parâmetro que contém o nome da conta de armazenamento. Para location
, defina como location
. Ao adicionar o nome e o tipo do SKU, o IntelliSense apresentará as opções válidas.
Ao concluir, 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@2023-11-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@2023-04-01' = {
name: storageName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Para obter mais informações sobre a sintaxe Bicep, confira Estrutura Bicep.
Implante o arquivo Bicep
A implantação do arquivo Bicep ainda não pode ser feita por meio do Visual Studio. É 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 storageName=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