¿Qué es Bicep?
Bicep es un lenguaje específico del dominio (DSL) que usa sintaxis declarativa para implementar recursos de Azure. En un archivo Bicep, defina la infraestructura que desea implementar en Azure y, a continuación, use ese archivo durante todo el ciclo de vida de desarrollo para implementar repetidamente la infraestructura. Los recursos se implementan de forma coherente.
Bicep brinda sintaxis concisa, seguridad de tipos confiable y compatibilidad con la reutilización de código. Bicep ofrece la mejor experiencia de creación para sus soluciones de infraestructura como código en Azure.
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 tiene que esperar a que se actualicen las herramientas antes de usar los 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 ningún conocimiento previo de los 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. En ambos ejemplos se implementa una cuenta de almacenamiento.
param location string = resourceGroup().location param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}' resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-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 una completa seguridad de tipos, IntelliSense y validación de sintaxis.
También puede crear archivos de Bicep en Visual Studio con la extensión Bicep para Visual Studio.
Resultados repetibles: Implemente repetidamente la infraestructura a lo largo del ciclo de vida del desarrollo y tenga la seguridad de que los recursos se implementan de forma coherente. Los archivos de Bicep son idempotentes, lo que significa que puede implementar el mismo archivo varias 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 las actualizaciones. Por ejemplo, el siguiente archivo crea una cuenta de almacenamiento. Si implementa esta plantilla y la cuenta de almacenamiento con las propiedades especificadas ya existen, no se realiza ningún cambio.
Orquestación: No tiene que preocuparse por la complejidad de las operaciones de ordenación. Resource Manager se encarga de gestionar la implementación de recursos interdependientes para que se creen en el orden correcto. Cuando es posible, Resource Manager implementa los recursos en paralelo para que las implementaciones finalicen más rápido que las implementaciones en serie. El archivo se implementa mediante un comando, en lugar de hacerlo con varios comandos imperativos.
Modularidad: puede dividir el código de Bicep en elementos administrables mediante los módulos. El módulo implementa un conjunto de recursos relacionados. Los módulos permiten reutilizar el código y simplificar el desarrollo. Agregue el módulo a un archivo de Bicep cada vez que necesite implementar esos recursos.
Integración con los servicios de Azure: Bicep se integra con los servicios de Azure como Azure Policy, las especificaciones de plantilla y los planos técnicos.
Vista previa de los cambios: Puede usar la operación hipotética para obtener una vista previa de los cambios antes de implementar el archivo de Bicep. Con la operación hipotética puede ver qué recursos se crearán, actualizarán o eliminarán, así como las propiedades de los recursos que se cambiarán. La operación hipotética comprueba el estado actual del entorno y elimina la necesidad de administrar el estado.
No hay archivos de estado ni estado que administrar: todo el estado se almacena en Azure. Los usuarios pueden colaborar y tener la confianza de que sus actualizaciones se controlan según lo previsto.
Sin costo ni código abierto: Bicep es completamente gratuito. No tiene que pagar por las funcionalidades prémium. Asimismo, también es compatible con el Soporte técnico de Microsoft.
Introducción
Para empezar a trabajar con Bicep:
- Instale las herramientas. Consulte Configuración de entornos de desarrollo e implementación de Bicep. O bien, puede usar el repositorio VS Code Devcontainer/Codespaces para obtener un entorno de creación preconfigurado.
- Complete el inicio rápido y los Bicep en Microsoft Learn.
Para descompilar en Bicep una plantilla de ARM existente, vea Descompilación de JSON de la plantilla de ARM en Bicep. Para ver el archivo de Bicep y el de JSON equivalente en paralelo, use el Bicep Playground.
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 Bicep en GitHub
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 estos recursos, sin escribir una secuencia de comandos de programación para crear recursos.
Para realizar el seguimiento del estado del trabajo en Bicep, consulte el repositorio de proyectos de Bicep.
Para obtener información sobre Bicep, consulte el vídeo siguiente.
Puede usar Bicep en lugar de JSON para desarrollar las plantillas de Azure Resource Manager (plantillas de ARM). La sintaxis JSON para crear una plantilla de ARM puede ser detallada y exigir expresiones complicadas. La sintaxis de Bicep reduce esa complejidad y mejora la experiencia de desarrollo. Bicep es una abstracción transparente del código JSON de plantillas de ARM, y no pierde ninguna de las funcionalidades de las plantillas JSON. Durante la implementación, la CLI de Bicep convierte un archivo de Bicep en un archivo JSON de plantilla de ARM.
Los tipos de recursos, las versiones de API y las propiedades que son válidos en una plantilla de ARM son válidos en un archivo de Bicep.
Bicep ofrece una sintaxis más sencilla y concisa en comparación con el JSON equivalente. No se usan expresiones entre [...]
corchetes. En su lugar, se llama directamente a las funciones y se obtienen los valores de los parámetros y las 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 la 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.
Pasos siguientes
Comience con el inicio rápido.
Para obtener respuestas a preguntas comunes, consulte Preguntas frecuentes sobre Bicep.