¿Qué es Bicep?

Completado

Ahora que el equipo entiende cómo funciona Azure Resource Manager, decide usar plantillas de ARM para el aprovisionamiento de recursos. Entiende que puede escribir plantillas de ARM de dos maneras diferentes: mediante JSON o con Bicep. Quiere obtener más información sobre las plantillas de Bicep para que pueda tomar una decisión informada sobre qué lenguaje usar.

En esta unidad, aprenderá sobre el lenguaje de plantilla de Bicep y las ventajas que proporciona a la creación de plantillas.

Lenguaje Bicep

Bicep es un lenguaje de plantilla de Resource Manager que se usa para implementar recursos de Azure mediante declaración. Bicep está diseñado para un escenario o dominio específico, lo que lo convierte en un lenguaje específico de dominio. Bicep no está pensado para usarse como lenguaje de programación estándar para escribir aplicaciones. Bicep solo se usa para crear plantillas de Resource Manager. Bicep está pensado para ser fácil de entender y fácil de aprender, independientemente de la experiencia que tenga con otros lenguajes de programación. Todos los tipos de recursos, versiones de API y propiedades son válidos en las plantillas de Bicep.

Nota:

Si anteriormente ha visto el uso de plantillas JSON, es posible que haya observado que Bicep simplifica la experiencia de creación de plantillas. Proporciona una sintaxis que es más fácil de entender, una mejor compatibilidad con la modularidad y el código reutilizable, y una seguridad de tipos mejorada. La creación de una plantilla de ARM JSON requiere expresiones complicadas y el resultado final podría ser detallado.

Ventajas de Bicep

Bicep proporciona muchas mejoras sobre JSON para la creación de plantillas, entre las que se incluyen las siguientes:

  • Sintaxis más sencilla: Bicep proporciona una sintaxis más sencilla para escribir plantillas. Puede hacer referencia a parámetros y variables directamente, sin usar funciones complicadas. La interpolación de cadenas se usa en lugar de la concatenación para combinar valores para nombres y otros elementos. Puede hacer referencia a las propiedades de un recurso directamente mediante su nombre simbólico en lugar de instrucciones de referencia complejas. Estas mejoras de sintaxis ayudan tanto con la creación como con la lectura de plantillas de Bicep.

  • Módulos: puede desglosar las implementaciones de plantillas complejas en archivos de módulo más pequeños y hacer referencia a ellos en una plantilla principal. Estos módulos proporcionan una administración más sencilla y una mayor capacidad de uso. Incluso puede compartir sus módulos con el equipo.

  • Administración automática de dependencias: en la mayoría de las situaciones, Bicep detecta automáticamente las dependencias entre los recursos. Este proceso quita parte del trabajo que implica la creación de plantillas.

  • Validación de tipos e IntelliSense: la extensión Bicep para Visual Studio Code incluye una validación enriquecida e IntelliSense para todas las definiciones de API de tipos de recursos de Azure. Esta característica ayuda a proporcionar una experiencia de creación más sencilla.

Consulte el ejemplo siguiente de una plantilla de Bicep que define una cuenta de almacenamiento de Azure. La plantilla genera automáticamente el nombre de la cuenta de almacenamiento. Después de la implementación, el identificador de recurso se devuelve como salida al usuario que ejecuta la plantilla.

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