Utiliser des extensions Bicep

Bicep a été initialement créé pour améliorer l’expérience de création par rapport aux modèles JSON Azure Resource Manager, ce qui simplifie le déploiement et la gestion des ressources Azure. Les extensions Bicep s’appuient sur cette base, ce qui permet aux fichiers Bicep de référencer des ressources au-delà de l’étendue d’Azure Resource Manager. Cet article explique comment utiliser des extensions Bicep.

La syntaxe pour importer une extension Bicep est la suivante :

extension <extension-name>

La syntaxe pour importer des extensions Bicep nécessitant d’être configurées est la suivante :

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

Pour obtenir des exemples, consultez Extension Kubernetes Bicep et extension Microsoft Graph.

Troubleshooting

Votre déploiement peut échouer avec une erreur 401 AuthenticationFailed lorsque vous tentez d’utiliser l’extension Graph (ou toute extension Bicep nécessitant le flux OAuth on-Behalf-Of) dans un module imbriqué dans des conditions spécifiques.

Cette limitation se produit spécifiquement lorsque le module imbriqué répond à l’un des critères suivants :

  • Il est configuré en tant que spécification de modèle.
  • Il utilise templateLink, où le modèle parent est créé manuellement plutôt que généré via Bicep.

Dans ces scénarios, l’échange d’authentification requis pour l’extension ne peut pas aboutir, ce qui entraîne l’échec du déploiement.

Pour contourner ce problème, vous pouvez importer l’extension au niveau du fichier racine Bicep. Par exemple:

extension microsoftGraphV1

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