Uso de extensiones de Bicep

Bicep se creó inicialmente para mejorar la experiencia de creación en comparación con las plantillas JSON de Azure Resource Manager, lo que simplifica la implementación y administración de los recursos de Azure. Las extensiones de Bicep se basan en esta base, lo que permite que los archivos de Bicep hagan referencia a recursos más allá del ámbito de Azure Resource Manager. En este artículo se describe cómo utilizar las extensiones de Bicep.

La sintaxis para importar extensiones de Bicep es:

extension <extension-name>

La sintaxis para importar extensiones de Bicep que requieren configuración es:

extension <extension-name> with {
  <extension-properties>
}

Para ver ejemplos, consulte la extensión Bicep Kubernetes y la extensión Microsoft Graph.

Solución de problemas

Es posible que la implementación produzca un error 401 AuthenticationFailed cuando intente usar la extensión de Graph (o cualquier extensión de Bicep que requiera el OAuth On-Behalf-Of flow) en un módulo anidado en determinadas condiciones.

Esta limitación se produce específicamente cuando el módulo anidado cumple uno de los criterios siguientes:

  • Se configura como una especificación de plantilla.
  • Utiliza templateLink, donde la plantilla principal se crea manualmente en lugar de generarse a través de Bicep.

En estos escenarios, no se puede completar el protocolo de enlace de autenticación necesario para la extensión, lo que provoca un error de implementación.

Como solución alternativa, puede importar la extensión en el nivel de archivo raíz Bicep. Por ejemplo:

extension microsoftGraphV1

module graphModule 'ts/mySpecs:graph-module:1.0.0' = { // Uses the Graph extension internally
  params: {
    ...
  }
}