Qu’est-ce que Bicep ?

Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Dans un fichier Bicep, vous définissez l’infrastructure que vous voulez déployer sur Azure, puis utilisez ce fichier tout au long du cycle de vie de développement pour déployer votre infrastructure à plusieurs reprises. Vos ressources sont déployées de manière cohérente.

Bicep fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.

Avantages de Bicep

Bicep offre les avantages suivants :

  • Support pour tous les types de ressources et versions d’API : Bicep prend immédiatement en charge toutes les versions de préversion et de disponibilité générale (GA) pour les services Azure. Dès qu’un fournisseur de ressources introduit de nouveaux types de ressources et de versions d’API, vous pouvez les utiliser dans votre fichier Bicep. Vous ne devez pas attendre la mise à jour des outils avant d’utiliser les nouveaux services.

  • Syntaxe simple : par rapport au modèle JSON équivalent, les fichiers Bicep sont plus concis et plus faciles à lire. Bicep ne nécessite aucune connaissance préalable des langages de programmation. La syntaxe Bicep est déclarative et spécifie les ressources et les propriétés de ressource que vous souhaitez déployer.

    Les exemples suivants illustrent la différence entre un fichier Bicep et le modèle JSON équivalent. Les deux exemples déploient un compte de stockage.

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

  • Expérience de création : lorsque vous utilisez l’Extension Bicep pour VS Code pour créer vos fichiers Bicep, vous bénéficiez d’une expérience de création de première classe. L’éditeur fournit une validation enrichie de type sécurisé, IntelliSense et de la syntaxe.

    Exemple de création d’un fichier Bicep

    Vous pouvez également créer des fichiers Bicep dans Visual Studio avec l’extension Bicep pour Visual Studio.

  • Résultats reproductibles : Déployez votre infrastructure à plusieurs reprises tout au long du cycle de vie de développement. Vous avez ainsi l’assurance que vos ressources sont déployées de façon cohérente. Les fichiers Bicep sont idempotents, ce qui signifie que vous pouvez déployer le même fichier plusieurs fois et obtenir les mêmes types de ressources dans le même état. Vous pouvez développer un fichier qui représente l’état souhaité, plutôt que de développer un grand nombre de fichiers distincts pour représenter des mises à jour.

  • Orchestration : Vous n’avez pas à vous soucier de la complexité des opérations de commande. Resource Manager orchestre le déploiement de ressources interdépendantes afin qu’elles soient créées dans l’ordre approprié. Lorsque cela est possible, Resource Manager déploie des ressources en parallèle afin que vos déploiements se terminent plus rapidement que les déploiements en série. Vous déployez le fichier par le biais d’une seule commande, plutôt que par le biais de plusieurs commandes impératives.

    Comparaison des déploiements Bicep

  • Modularité : vous pouvez diviser votre code Bicep en parties gérables à l’aide de modules. Le module déploie un ensemble de ressources associées. Les modules vous permettent de réutiliser le code et de simplifier le développement. Ajoutez le module à un fichier Bicep chaque fois que vous devez déployer ces ressources.

  • Intégration aux services Azure : Bicep est intégré aux services Azure, tels qu’Azure Policy, les specs de modèle et les blueprints.

  • Aperçu des modifications : Vous pouvez utiliser l’opération de simulation pour obtenir un aperçu des modifications avant de déployer le fichier Bicep. Avec la simulation, vous pouvez voir quelles ressources seront créées, mises à jour ou supprimées ainsi que les propriétés de ressource qui seront modifiées. L’opération de simulation vérifie l’état actuel de votre environnement et élimine la nécessité de gérer l’état.

  • Aucun fichier d’état ou état à gérer : tous les états sont stockés dans Azure. Les utilisateurs peuvent collaborer et être assurés que leurs mises à jour sont traitées comme prévu.

  • Aucuns frais et open source : Bicep est complètement gratuit. Vous ne devez pas payer les fonctionnalités Premium. Elles sont également prises en charge par le support Microsoft.

Bien démarrer

Pour commencer à utiliser Bicep :

  1. Installez les outils. Consultez Configurer des environnements de développement et de déploiement Bicep. Vous pouvez également utiliser le référentiel VS Code Devcontainer/Codespaces pour obtenir un environnement de création préconfiguré.
  2. Suivez le guide de démarrage rapide et les modules Learn pour Bicep.

Pour décompiler un modèle ARM existant au format Bicep, consultez Décompilation d’un modèle JSON au format Bicep. Le terrain de jeu Bicep vous permet d’afficher côte à côte un fichier Bicep et son équivalent JSON.

Pour découvrir les ressources disponibles dans votre fichier Bicep, consultez Informations de référence sur les ressources Bicep.

Vous trouverez des exemples Bicep dans le dépôt Bicep sur GitHub.

À propos du langage

Bicep n’est pas conçu comme un langage de programmation général pour l’écriture d’applications. Un fichier Bicep déclare des ressources Azure et des propriétés de ressources, sans écrire de séquence de commandes de programmation pour créer des ressources.

Pour suivre l’état du travail Bicep, consultez le référentiel de projet Bicep.

Pour en savoir plus sur Bicep, consultez la vidéo suivante.

Vous pouvez utiliser Bicep au lieu de JSON pour développer vos modèles Azure Resource Manager (modèles ARM). La syntaxe JSON pour la création d’un modèle ARM peut être détaillée et nécessiter une expression complexe. La syntaxe Bicep réduit cette complexité et améliore l’expérience de développement. Bicep est une abstraction transparente sur un modèle ARM JSON et ne perd aucune des fonctionnalités de modèle JSON. Pendant le déploiement, l’interface de ligne de commande Bicep convertit un fichier Bicep en JSON de modèle ARM.

Les types de ressources, les versions d’API et les propriétés qui sont valides dans un modèle ARM sont valides dans un fichier Bicep.

Bicep offre une syntaxe plus simple et plus concise que JSON. Vous n’utilisez pas d’expressions entre crochets [...]. Au lieu de cela, vous appelez directement des fonctions, et récupérez des valeurs à partir de paramètres et de variables. Vous attribuez à chaque ressource déployée un nom symbolique qui facilite le référencement de cette ressource dans votre modèle.

Pour une comparaison complète de la syntaxe, consultez Comparaison de JSON et Bicep pour les modèles.

Bicep gère automatiquement les dépendances entre ressources. Vous pouvez éviter de définir dependsOn quand le nom symbolique d’une ressource est utilisé dans une autre déclaration de ressource.

La structure du fichier Bicep est plus flexible celle du modèle JSON. Vous pouvez déclarer des paramètres, des variables et des sorties n’importe où dans le fichier. Dans JSON, vous devez déclarer l’ensemble des paramètres, variables et sorties dans les sections correspondantes du modèle.

Étapes suivantes

Commencez par le démarrage rapide.

Pour obtenir des réponses aux questions les plus fréquentes, consultez Foire aux questions sur Bicep.