Compartir a través de


¿Qué es Bicep?

Bicep es un lenguaje específico de dominio que usa una sintaxis declarativa para implementar recursos de Azure. En un archivo de Bicep, defina la infraestructura que desea implementar en Azure y, a continuación, use ese archivo durante el ciclo de vida de desarrollo para implementar repetidamente esa infraestructura. Los recursos se implementan de forma coherente.

Bicep proporciona sintaxis concisa, seguridad de tipos confiables y compatibilidad con la reutilización del código. Bicep ofrece una experiencia de creación óptima para las soluciones de infraestructura como código en Azure.

Advertencia

El soporte técnico al cliente de Microsoft no proporciona asistencia para problemas derivados del uso de características experimentales de Bicep; úselas en su propio riesgo.

Ventajas de Bicep

Bicep ofrece las siguientes ventajas:

  • Compatibilidad con todos los tipos de recursos y versiones de API: Bicep admite inmediatamente todas las versiones preliminares y de GA para los servicios de Azure. Tan pronto como un proveedor de recursos introduzca nuevos tipos de recursos y versiones de API, podrás utilizarlos en el archivo Bicep. No es necesario esperar a que se actualicen las herramientas antes de usar nuevos servicios.

  • Sintaxis simple: En comparación con la plantilla JSON equivalente, los archivos de Bicep son más concisos y fáciles de leer. Bicep no requiere conocimientos previos de lenguajes de programación. La sintaxis de Bicep es declarativa y especifica qué recursos y propiedades de recursos quiere implementar.

    En los ejemplos siguientes se muestra la diferencia entre un archivo de Bicep y la plantilla JSON equivalente. Ambos ejemplos implementan una cuenta de almacenamiento:

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

  • Experiencia de creación: Al usar la extensión de Bicep para VS Code para crear los archivos de Bicep, se obtiene una experiencia de creación de primera clase. El editor proporciona seguridad de tipos enriquecidos, IntelliSense y validación de sintaxis.

    Captura de pantalla de creación de un archivo de Bicep en tiempo real

    También puede crear archivos de Bicep en Visual Studio con la extensión Bicep para Visual Studio.

  • Resultados repetibles: implemente la infraestructura durante todo el ciclo de vida de desarrollo con confianza de que los recursos se implementan de forma coherente. Los archivos Bicep son idempotentes, lo que significa que puede implementar el mismo archivo muchas veces y obtener los mismos tipos de recursos en el mismo estado. Puede desarrollar un archivo que represente el estado deseado en lugar de desarrollar muchos archivos independientes para representar actualizaciones. Por ejemplo, el siguiente archivo crea una cuenta de almacenamiento. Si implementa esta plantilla y la cuenta de almacenamiento cuando ya existen las propiedades especificadas, no se realizan cambios:

    param location string = resourceGroup().location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: 'mystorageaccount'
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

  • Orquestación: No tiene que preocuparse por la complejidad de las operaciones de ordenación. Azure Resource Manager organiza la implementación de recursos interdependientes para que se creen en el orden correcto. Cuando sea posible, Resource Manager implementa recursos en paralelo, lo que ayuda a las implementaciones a finalizar más rápido que las implementaciones en serie. Implemente el archivo a través de uno en lugar de varios comandos imperativos.

    Diagrama que compara la implementación entre un archivo de Bicep y una infraestructura como código que no está en una plantilla.

  • Modularidad: use módulos para segmentar el código de Bicep en partes administrables. Los módulos le ayudan a reutilizar el código y simplificar el desarrollo. Un módulo implementa un conjunto de recursos relacionados. Agregue un módulo a un archivo de Bicep cuando necesite implementar esos recursos.

  • Integración con servicios de Azure: Bicep se integra con servicios de Azure, como Azure Policy, especificaciones de plantilla y Azure Blueprints.

  • Vista previa de los cambios: puede utilizar la operación what-if para obtener una vista previa de los cambios antes de implementar el archivo Bicep. La operación what-if muestra qué recursos se van a crear, actualizar o eliminar y las propiedades de recursos que se van a cambiar. También comprueba el estado actual del entorno y elimina la necesidad de administrar este estado.

  • Sin estados o archivos de estado para administrar: Azure almacena todos los estados. Puede colaborar con otros usuarios y estar seguro de que las actualizaciones se controlan según lo previsto.

  • Sin costo ni código abierto: dado que Bicep es gratuito, no paga por las funcionalidades premium. El soporte técnico de Microsoft lo admite.

Introducción

Para empezar a trabajar con Bicep:

  1. Instale las herramientas. Para obtener más información, consulte Configuración de entornos de desarrollo e implementación de Bicep o uso del repositorio de devcontainer/Codespaces de VS Code para obtener un entorno de creación preconfigurado.

  2. **Complete el inicio rápido.

Para descompilar una plantilla de Resource Manager existente en Bicep, consulte Descompilar una plantilla json de Azure Resource Manager en Bicep. Puede usar Bicep Playground para ver Bicep y su equivalente, JSON, uno al lado del otro.

Para obtener información sobre los recursos que están disponibles en el archivo de Bicep, vea Referencia de recursos de Bicep.

Puede encontrar ejemplos de Bicep en el repositorio de GitHub de Bicep.

Acerca del idioma

Bicep no está pensado como lenguaje general de programación para escribir aplicaciones. Un archivo de Bicep declara recursos de Azure y propiedades de recursos sin escribir una secuencia de comandos de programación para crearlos.

Para realizar el seguimiento del estado del trabajo en Bicep, consulte el repositorio de proyectos de Bicep.

Para obtener información sobre Bicep, vea el vídeo siguiente:

Puede usar Bicep en lugar de JSON para desarrollar plantillas de Resource Manager. La sintaxis JSON para crear una plantilla de Resource Manager puede ser detallada y requerir expresiones complicadas. La sintaxis de Bicep reduce esa complejidad y mejora la experiencia de desarrollo. Bicep es una abstracción transparente sobre una plantilla JSON de Resource Manager que no pierde las funcionalidades de una plantilla JSON. Durante la implementación, la CLI de Bicep convierte un archivo de Bicep en una plantilla JSON de Resource Manager.

Los tipos de recursos, las versiones de API y las propiedades que son válidas en una plantilla de Resource Manager son válidas en un archivo de Bicep.

Bicep ofrece una sintaxis más sencilla y concisa que su json equivalente. No se usan expresiones entre [...] corchetes. En su lugar, llama directamente a funciones y obtiene valores de parámetros y variables. Se asigna un nombre simbólico a cada recurso implementado, lo que facilita la referencia a ese recurso en la plantilla.

Para ver una comparación completa de la sintaxis, consulte Comparación de JSON y Bicep para plantillas.

Bicep administra automáticamente las dependencias entre los recursos. Puede evitar configurar dependsOn cuando el nombre simbólico de un recurso se use en otra declaración de recursos.

La estructura del archivo de Bicep es más flexible que una plantilla JSON. Puede declarar parámetros, variables y salidas en cualquier parte del archivo. En JSON, tiene que declarar todos los parámetros, variables y salidas dentro de las secciones correspondientes de la plantilla.

Obtener soporte técnico

Estos son los pasos para abrir una incidencia de soporte técnico para problemas relacionados con la plantilla de Azure Resource Manager (ARM):

  1. Abra Azure Portal.

  2. Seleccione el icono Soporte técnico y solución de problemas en la esquina superior derecha.

  3. En Describir brevemente el problema, escriba Plantilla de ARMy, después, seleccione Ir.

  4. En ¿Con qué servicio tiene un problema?, seleccione Portal en Supervisión y administración y, después, seleccione Siguiente.

  5. Elija una suscripción y seleccione Siguiente.

  6. Seleccione Problema con plantillas de ARM y después Siguiente.

    Captura de pantalla de la solicitud de compatibilidad con plantillas de ARM.

Contribución a Bicep

Bicep es un proyecto de código abierto. Esto significa que puedes contribuir al desarrollo de Bicep y participar en la comunidad más amplia de Bicep. Los tipos de contribución incluyen:

  • Plantillas de inicio rápido de Azure. Puede contribuir con archivos de ejemplo de Bicep y plantillas de ARM al repositorio de Plantillas de Inicio Rápido de Azure. Para más información, consulte la guía de contribución de plantillas de inicio rápido de Azure.
  • Documentación. La documentación de Bicep también está abierta a las contribuciones. Para obtener más información, consulte la introducción a nuestra guía de colaboradores.
  • Fragmentos. ¿Tiene un fragmento de código favorito del que cree que la comunidad se beneficiaría? Puede agregarlo a la colección de fragmentos de código de la extensión de Visual Studio Code. Para obtener más información, consulte Contribución a Bicep.
  • Cambios en el código. Si eres desarrollador y tienes ideas que te gustaría ver en el lenguaje o las herramientas de Bicep, puedes contribuir con un pull request. Para obtener más información, consulte Contribución a Bicep.

Pasos siguientes