Qu’est-ce que Bicep ?

Effectué

Maintenant que votre équipe comprend le fonctionnement d’Azure Resource Manager, vous décidez d’utiliser des modèles ARM pour l’approvisionnement de vos ressources. Vous comprenez que vous pouvez écrire des modèles ARM de deux manières différentes : en utilisant JSON et en tirant parti de Bicep. Vous souhaitez en savoir plus sur les modèles Bicep pour pouvoir prendre une décision informée sur le langage à utiliser.

Dans cette unité, vous découvrez le langage du modèle Bicep et les avantages qu’il offre pour la création de modèles.

Langage Bicep

Bicep est un langage de modèle Resource Manager utilisé pour déployer de façon déclarative des ressources Azure. Bicep est conçu pour un scénario ou domaine spécifique, ce qui en fait un langage dédié. Bicep n’est pas destiné à être utilisé comme langage de programmation standard pour l’écriture d’applications. Bicep est utilisé uniquement pour créer des modèles Resource Manager. Bicep est conçu pour être facile à comprendre et à apprendre, quelle que soit votre expérience avec d’autres langages de programmation. Tous les types de ressources, les versions d’API et les propriétés sont valides dans les modèles Bicep.

Remarque

Si vous avez précédemment regardé l’utilisation des modèles JSON, il est possible que vous remarquiez que Bicep simplifie l’expérience de création de modèles. Il fournit une syntaxe plus facile à comprendre, une meilleure prise en charge de la modularité et du code réutilisable, ainsi qu’une cohérence des types améliorée. La création d’un modèle ARM JSON requiert des expressions compliquées et le résultat final peut être détaillé.

Avantages de Bicep

Bicep fournit de nombreuses améliorations par rapport à JSON pour la création de modèles, notamment :

  • Syntaxe plus simple : Bicep fournit une syntaxe plus simple pour l’écriture de modèles. Vous pouvez référencer des paramètres et des variables directement, sans utiliser de fonctions complexes. L’interpolation de chaîne est utilisée à la place de la concaténation pour combiner des valeurs pour les noms et d’autres éléments. Vous pouvez référencer directement les propriétés d’une ressource à l’aide de son nom symbolique au lieu d’instructions de référence complexes. Ces améliorations de syntaxe permettent de créer et de lire des modèles Bicep.

  • Modules : vous pouvez décomposer des déploiements de modèles complexes en fichiers de modules plus petits et les référencer dans un modèle principal. Ces modules facilitent la gestion et la réutilisation accrue. Vous pouvez même partager vos modules avec votre équipe.

  • Gestion automatique des dépendances : dans la plupart des cas, Bicep détecte automatiquement les dépendances entre vos ressources. Ce processus supprime une partie du travail impliqué dans la création de modèles.

  • Validation de type et IntelliSense : l’extension Bicep pour Visual Studio Code intègre une validation riche et IntelliSense pour toutes les définitions d’API de type de ressource Azure. Cette fonctionnalité permet d’obtenir une expérience de création plus simple.

Jetez un coup d’œil à l’exemple suivant d’un modèle Bicep qui définit un compte de stockage Azure. Le modèle génère automatiquement le nom du compte de stockage. Après le déploiement, l’ID de la ressource est retourné en tant que sortie à l’utilisateur qui exécute le modèle.

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