Início Rápido: Criar ficheiros Bicep com o Visual Studio

Este guia de início rápido orienta-o através dos passos para criar um ficheiro Bicep com o Visual Studio. Irá criar uma conta de armazenamento e uma rede virtual. Também irá aprender como a extensão bicep simplifica o desenvolvimento ao fornecer segurança do tipo, validação de sintaxe e conclusão automática.

Também é suportada uma experiência de criação semelhante no Visual Studio Code. Veja Início Rápido: Criar ficheiros Bicep com o Visual Studio Code.

Pré-requisitos

Adicionar fragmento de recurso

Inicie o Visual Studio e crie um novo ficheiro com o nome main.bicep.

O Visual Studio com a extensão Bicep simplifica o desenvolvimento ao fornecer fragmentos predefinidos. Neste início rápido, irá adicionar um fragmento que cria uma rede virtual.

Em main.bicep, escreva vnet. Selecione res-vnet na lista e, em seguida, prima [TAB] ou [ENTER].

Captura de ecrã a mostrar a adição de fragmentos para a rede virtual.

Dica

Se não vir essas opções de intellisense no Visual Studio, certifique-se de que instalou a extensão bicep conforme especificado em Pré-requisitos. Se tiver instalado a extensão, dê algum tempo ao serviço de idioma do Bicep para iniciar depois de abrir o ficheiro Bicep. Normalmente, começa rapidamente, mas não terá opções de intellisense até começar.

O ficheiro Bicep contém agora 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'
        }
      }
    ]
  }
}

Este fragmento contém todos os valores necessários para definir uma rede virtual. No entanto, pode modificar este código para satisfazer os seus requisitos. Por exemplo, name não é um nome ótimo para a rede virtual. Altere a name propriedade para exampleVnet.

name: 'exampleVnet'

A localização do aviso tem um sublinhado vermelho encaracolado. Isto indica um problema. Paire o cursor sobre a localização. A mensagem de erro é : o nome "localização" não existe no contexto atual. Vamos criar um parâmetro de localização na secção seguinte.

Adicionar parâmetros

Agora, vamos adicionar dois parâmetros para o nome da conta de armazenamento e a localização. Na parte superior do ficheiro, adicione:

param storageName

Quando adiciona um espaço após storageName, tenha em atenção que o intellisense oferece os tipos de dados disponíveis para o parâmetro. Selecione cadeia.

Captura de ecrã a mostrar a adição de tipo de cadeia ao parâmetro.

Tem o seguinte parâmetro:

param storageName string

Este parâmetro funciona bem, mas as contas de armazenamento têm limites na duração do nome. O nome tem de ter, pelo menos, 3 carateres e não mais de 24 carateres. Pode especificar esses requisitos ao adicionar decoradores ao parâmetro .

Adicione uma linha acima do parâmetro e escreva @. Verá os decoradores disponíveis. Repare que existem decoradores para minLength e maxLength.

Captura de ecrã a mostrar a adição de decoradores ao parâmetro .

Adicione ambos os decoradores e especifique os limites de carateres, conforme mostrado abaixo:

@minLength(3)
@maxLength(24)
param storageName string

Também pode adicionar uma descrição para o parâmetro. Inclua informações que ajudam as pessoas a implementar o ficheiro Bicep a compreender o valor a fornecer.

@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 nome da conta de armazenamento está pronto para ser utilizado.

Adicione outro parâmetro de localização:

param location string = resourceGroup().location

Adicionar recurso

Em vez de utilizar um fragmento para definir a conta de armazenamento, vamos utilizar o intellisense para definir os valores. O Intellisense torna este passo muito mais fácil do que ter de escrever manualmente os valores.

Para definir um recurso, utilize a resource palavra-chave. Abaixo da rede virtual, escreva exemplo de recursoStorage:

resource exampleStorage

exampleStorage é um nome simbólico para o recurso que está a implementar. Pode utilizar este nome para referenciar o recurso noutras partes do ficheiro Bicep.

Quando adiciona um espaço após o nome simbólico, é apresentada uma lista de tipos de recursos. Continue a escrever armazenamento até poder selecioná-lo nas opções disponíveis.

Captura de ecrã a mostrar a seleção de contas de armazenamento para o tipo de recurso.

Depois de selecionar Microsoft.Storage/storageAccounts, são apresentadas as versões de API disponíveis. Selecione 2021-09-01 ou a versão mais recente da API. Recomendamos que utilize a versão mais recente da API.

Captura de ecrã a mostrar a seleção da versão da API para o tipo de recurso.

Depois da plica do tipo de recurso, adicione = e um espaço. São-lhe apresentadas opções para adicionar propriedades ao recurso. Selecione required-properties.

Captura de ecrã a mostrar a adição de propriedades necessárias.

Esta opção adiciona todas as propriedades para o tipo de recurso necessário para a implementação. Depois de selecionar esta opção, a sua conta de armazenamento tem as seguintes propriedades:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-09-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

Existem quatro marcadores de posição no código. Utilize [TAB] para os percorrer e introduzir os valores. Mais uma vez, o intellisense ajuda-o. Defina name como storageName, que é o parâmetro que contém um nome para a conta de armazenamento. Para location, defina-o como location. Ao adicionar o nome e o tipo de SKU, o intellisense apresenta as opções válidas.

Quando terminar, tem:

@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@2019-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@2021-09-01' = {
  name: storageName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

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

Implementar o ficheiro Bicep

A implementação de ficheiros Bicep ainda não pode ser efetuada a partir do Visual Studio. Pode implementar o ficheiro Bicep com a CLI do Azure ou 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 implementação terminar, deverá ver uma mensagem a indicar que a implementação foi efetuada com êxito.

Limpar os recursos

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

az group delete --name exampleRG

Passos seguintes