O que é o Bicep?

O Bicep é uma linguagem (DSL) específica do domínio que utiliza sintaxe declarativa para implementar recursos do Azure. Num ficheiro Bicep, define a infraestrutura que pretende implementar no Azure e, em seguida, utilize esse ficheiro ao longo do ciclo de vida de desenvolvimento para implementar repetidamente a sua infraestrutura. Os seus recursos são implementados de forma consistente.

O Bicep fornece sintaxe concisa, segurança de tipo fiável e suporte para reutilização de código. O Bicep oferece uma experiência de criação de primeira classe para as suas soluções de infraestrutura como código no Azure.

Benefícios do Bicep

O Bicep fornece as seguintes vantagens:

  • Suporte para todos os tipos de recursos e versões de API: o Bicep suporta imediatamente todas as versões de pré-visualização e GA dos serviços do Azure. Assim que um fornecedor de recursos introduzir novos tipos de recursos e versões de API, pode utilizá-los no seu ficheiro Bicep. Não tem de esperar que as ferramentas sejam atualizadas antes de utilizar os novos serviços.

  • Sintaxe simples: quando comparados com o modelo JSON equivalente, os ficheiros Bicep são mais concisos e fáceis de ler. O Bicep não requer conhecimentos anteriores sobre linguagens de programação. A sintaxe bicep é declarativa e especifica quais os recursos e propriedades de recursos que pretende implementar.

    Os exemplos seguintes mostram a diferença entre um ficheiro Bicep e o modelo JSON equivalente. Ambos os exemplos implementam uma conta de armazenamento.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • Experiência de criação: quando utiliza a Extensão bicep para o VS Code para criar os seus ficheiros Bicep, obtém uma experiência de criação de primeira classe. O editor fornece uma avançada validação de tipo de segurança, intellisense e sintaxe.

    Exemplo de criação de ficheiros bicep

    Também pode criar ficheiros Bicep no Visual Studio com a extensão Bicep para Visual Studio.

  • Resultados repetíveis: implemente repetidamente a sua infraestrutura ao longo do ciclo de vida de desenvolvimento e tenha confiança de que os seus recursos são implementados de forma consistente. Os ficheiros bicep são idempotentes, o que significa que pode implementar o mesmo ficheiro muitas vezes e obter os mesmos tipos de recursos no mesmo estado. Pode desenvolver um ficheiro que represente o estado pretendido, em vez de desenvolver muitos ficheiros separados para representar atualizações.

  • Orquestração: não tem de se preocupar com as complexidades das operações de ordenação. Resource Manager orquestra a implementação de recursos interdependentes para que sejam criados pela ordem correta. Sempre que possível, Resource Manager implementa recursos em paralelo para que as suas implementações sejam concluídas mais rapidamente do que as implementações em série. Pode implementar o ficheiro através de um comando, em vez de através de vários comandos imperativos.

    Comparação da implementação do Bicep

  • Modularidade: pode dividir o código do Bicep em partes geríveis com módulos. O módulo implementa um conjunto de recursos relacionados. Os módulos permitem-lhe reutilizar código e simplificar o desenvolvimento. Adicione o módulo a um ficheiro Bicep sempre que precisar de implementar esses recursos.

  • Integração com os serviços do Azure: o Bicep está integrado com serviços do Azure, como Azure Policy, especificações de modelo e Esquemas.

  • Pré-visualizar alterações: pode utilizar a operação what-if para obter uma pré-visualização das alterações antes de implementar o ficheiro Bicep. Com o what-if, verá quais os recursos que serão criados, atualizados ou eliminados e quaisquer propriedades de recursos que serão alteradas. A operação what-if verifica o estado atual do seu ambiente e elimina a necessidade de gerir o estado.

  • Sem ficheiros de estado ou estado para gerir: todo o estado é armazenado no Azure. Os utilizadores podem colaborar e ter confiança de que as atualizações são processadas conforme esperado.

  • Sem custos e open source: o Bicep é completamente gratuito. Não tem de pagar pelas capacidades premium. Também é suportado pelo suporte da Microsoft.

Introdução

Para começar com o Bicep:

  1. Instale as ferramentas. Veja Configurar ambientes de desenvolvimento e implementação do Bicep. Em alternativa, pode utilizar o repositório VS Code Devcontainer/Codespaces para obter um ambiente de criação pré-configurado.
  2. Conclua o início rápido e os módulos do Learn para Bicep.

Para decompilar um modelo do ARM existente para o Bicep, veja Decompilar o modelo do ARM JSON para Bicep. Pode utilizar o Bicep Playground para ver Bicep e JSON equivalente lado a lado.

Para saber mais sobre os recursos que estão disponíveis no seu ficheiro Bicep, veja Referência de recursos do Bicep

Os exemplos do Bicep podem ser encontrados no repositório do GitHub do Bicep

Acerca do idioma

O Bicep não se destina a uma linguagem de programação geral para escrever aplicações. Um ficheiro Bicep declara os recursos do Azure e as propriedades dos recursos, sem escrever uma sequência de comandos de programação para criar recursos.

Para controlar o estado do trabalho do Bicep, veja o repositório do projeto Bicep.

Para saber mais sobre o Bicep, veja o seguinte vídeo.

Pode utilizar o Bicep em vez de JSON para desenvolver os seus modelos de Resource Manager do Azure (modelos arm). A sintaxe JSON para criar um modelo do ARM pode ser verbosa e exigir expressões complicadas. A sintaxe bicep reduz essa complexidade e melhora a experiência de desenvolvimento. O Bicep é uma abstração transparente sobre o modelo do ARM JSON e não perde nenhuma das capacidades de modelo JSON. Durante a implementação, a CLI do Bicep converte um ficheiro Bicep em JSON do modelo arm.

Os tipos de recursos, as versões da API e as propriedades válidas num modelo do ARM são válidos num ficheiro Bicep.

O Bicep oferece uma sintaxe mais fácil e concisa em comparação com o JSON equivalente. Não utiliza expressões entre parênteses [...]. Em vez disso, chama diretamente as funções e obtém valores de parâmetros e variáveis. Dá a cada recurso implementado um nome simbólico, o que torna mais fácil referenciar esse recurso no seu modelo.

Para obter uma comparação completa da sintaxe, veja Comparar JSON e Bicep para modelos.

O Bicep gere automaticamente as dependências entre recursos. Pode evitar definir dependsOn quando o nome simbólico de um recurso é utilizado noutra declaração de recurso.

A estrutura do ficheiro Bicep é mais flexível do que o modelo JSON. Pode declarar parâmetros, variáveis e saídas em qualquer parte do ficheiro. No JSON, tem de declarar todos os parâmetros, variáveis e saídas nas secções correspondentes do modelo.

Passos seguintes

Introdução ao Início Rápido.

Para obter respostas a perguntas comuns, veja Perguntas mais frequentes sobre o Bicep.