O que é o Bicep?
Agora que sua equipe entende como o Azure Resource Manager funciona, você decide usar modelos do ARM para o provisionamento de recursos. Você entende que pode escrever modelos do ARM de duas maneiras diferentes: usando JSON ou usando o Bicep. Você deseja saber mais sobre modelos Bicep para que possa tomar uma decisão informada sobre qual linguagem usar.
Nesta unidade, você aprende sobre a linguagem do modelo Bicep e os benefícios que ela proporciona para a criação de modelos.
Linguagem Bicep
O Bicep é uma linguagem de modelo do Resource Manager usada para implantar de forma declarativa os recursos do Azure. O Bicep foi projetado para um cenário ou domínio específico, o que o torna um idioma específico do domínio. O Bicep não deve ser usado como uma linguagem de programação padrão para desenvolver aplicativos. Ele é usado apenas para criar modelos do Resource Manager. O objetivo do Bicep é ser fácil de entender e simples de aprender, independentemente de sua experiência com outras linguagens de programação. Todos os tipos de recursos, versões de API e propriedades são válidos em modelos Bicep.
Observação
Se você já analisou o uso de modelos JSON, você pode ter observado que o Bicep simplifica a experiência de criação de modelos. Ele fornece uma sintaxe mais fácil de entender, melhor suporte para modularidade, código reutilizável e segurança de tipos aprimorada. A criação de um modelo do ARM em JSON requer expressões complicadas, e o resultado final pode ser prolífero.
Benefícios do Bicep
O Bicep fornece muitas melhorias em relação ao JSON para a criação de modelos, incluindo:
Sintaxe mais simples: o Bicep fornece uma sintaxe mais simples para criar modelos. Você pode referenciar parâmetros e variáveis diretamente, sem usar funções complicadas. A interpolação de cadeia de caracteres é usada no lugar da concatenação a fim de combinar valores para nomes e outros itens. Você pode referenciar as propriedades de um recurso diretamente usando o nome simbólico dele em vez de declarações de referência complexas. Essas melhorias de sintaxe ajudam tanto na criação quanto na leitura de modelos Bicep.
Módulos: você pode separar implantações de modelo complexas em arquivos de módulo menores e fazer referência a eles em um modelo principal. Esses módulos fornecem gerenciamento mais fácil e maior capacidade de reutilização. Você pode até mesmo compartilhar seus módulos com sua equipe.
Gerenciamento automático de dependências: na maioria das situações, o Bicep detecta automaticamente dependências entre seus recursos. Esse processo remove parte do trabalho envolvido na criação de modelos.
Validação de tipo e IntelliSense: a extensão Bicep para Visual Studio Code inclui validação avançada e IntelliSense para todas as definições de API de tipo de recurso do Azure. Esse recurso ajuda a facilitar a experiência de criação.
Confira o exemplo a seguir de um modelo Bicep que define uma conta de armazenamento do Azure. O modelo gera automaticamente o nome da conta de armazenamento. Após a implantação, a ID do recurso é retornada como saída para o usuário que executa o modelo.
param location string = resourceGroup().location
param namePrefix string = 'storage'
var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
kind: 'StorageV2'
sku: {
name: storageAccountSku
}
properties: {
accessTier: 'Hot'
supportsHttpsTrafficOnly: true
}
}
output storageAccountId string = storageAccount.id