Démarrage rapide : Créer des fichiers Bicep avec Visual Studio Code

Ce démarrage rapide vous guide tout au long de la procédure de création d’un fichier Bicep avec Visual Studio Code. Vous créez un compte de stockage et un réseau virtuel. Vous allez également découvrir comment l’extension Bicep simplifie le développement en fournissant une cohérence des types, la validation de syntaxe et l’autocomplétion.

Une expérience de création similaire est également prise en charge dans Visual Studio. Consultez Démarrage rapide : créer des fichiers Bicep avec Visual Studio.

Prérequis

Si vous ne disposez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Pour configurer votre environnement pour le développement Bicep, consultez Installer les outils bicep. Une fois ces étapes effectuées, vous disposez de Visual Studio Code et de l’extension Bicep. Vous disposez également de la dernière version d’Azure CLI ou du dernier module Azure PowerShell.

Ajouter un extrait de code de ressource

VS Code avec l’extension Bicep simplifie le développement en fournissant des extraits de code prédéfinis. Dans ce guide de démarrage rapide, vous allez ajouter un extrait de code qui crée un réseau virtuel.

Lancez Visual Studio Code et créez un nouveau fichier nommé main.bicep.

Dans main.bicep, tapez VNet, sélectionnez res-vnet dans la liste, puis appuyez sur [TAB] ou [ENTRÉE].

Screenshot of adding snippet for virtual network.

Conseil

Si vous ne voyez pas ces options Intellisense dans VS Code, assurez-vous que vous avez installé l’extension Bicep comme indiqué dans Prérequis. Si vous avez installé l’extension, laissez au service de langage Bicep un peu de temps pour démarrer après l’ouverture de votre fichier Bicep. Il démarre généralement rapidement, mais vous ne disposez pas des options IntelliSense tant qu’il n’a pas démarré. Une notification dans le coin inférieur droit indique que le service est en cours de démarrage. Lorsque cette notification disparaît, le service est en cours d’exécution.

Votre fichier Bicep contient maintenant le code suivant :

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'name'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

Dans cet extrait de code, vous trouverez toutes les valeurs nécessaires à la définition d’un réseau virtuel. Vous pouvez remarquer deux soulignements ondulés. Un soulignement jaune indique un avertissement lié à une version d’API obsolète, alors qu’un soulignement ondulé rouge signale une erreur causée par une définition de paramètre manquante.

Supprimez @2019-11-01, puis remplacez-le par @. Sélectionnez la dernière version de l’API.

Screenshot of updating API version.

Vous allez corriger l’erreur relative à la définition de paramètre manquante dans la prochaine section.

Vous pouvez également modifier ce code en fonction de vos besoins. Par exemple, name n’est pas un nom très adapté pour le réseau virtuel. Remplacez la propriété name par examplevnet.

name: 'exampleVNet'

Ajout d’un paramètre

Il manque une définition de paramètre dans l’extrait de code que vous avez ajouté dans la dernière section.

En haut du fichier, ajoutez :

param location

Quand vous ajoutez un espace après location, notez qu’IntelliSense propose les types de données disponibles pour le paramètre. Sélectionnez Chaîne.

Screenshot of adding string type to parameter.

Affectez une valeur par défaut au paramètre :

param location string = resourceGroup().location

Pour plus d’informations sur la fonction utilisée dans la valeur par défaut, consultez resourceGroup().

Ajoutez un autre paramètre pour le nom du compte de stockage avec une valeur par défaut :

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Pour plus d’informations, consultez Interpolation et uniqueString().

Ce paramètre fonctionne correctement, mais les comptes de stockage présentent des limites en termes de longueur de nom. Le nom doit comporter au moins trois caractères et au plus 24 caractères. Vous pouvez spécifier ces exigences en ajoutant des éléments décoratifs au paramètre.

Ajoutez une ligne au-dessus du paramètre et entrez @ . Les éléments décoratifs disponibles s’affichent. Notez qu’il existe des éléments décoratifs pour minLength et maxLength.

Screenshot of adding decorators to parameter.

Ajoutez les deux éléments décoratifs, puis spécifiez les limites de caractères :

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Vous pouvez également ajouter une description pour le paramètre. Incluez des informations susceptibles d’aider les utilisateurs qui déploient le fichier Bicep à comprendre la valeur à fournir.

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Vos paramètres sont prêts à être utilisés.

Ajouter une ressource

Au lieu d’utiliser un extrait de code pour définir le compte de stockage, vous utilisez IntelliSense pour définir les valeurs. IntelliSense facilite cette étape en vous évitant de devoir taper manuellement les valeurs.

Pour définir une ressource, utilisez le mot clé resource. Sous votre réseau virtuel, entrez ressource exampleStorage :

resource exampleStorage

exampleStorage est un nom symbolique pour la ressource que vous déployez. Vous pouvez utiliser ce nom pour référencer la ressource dans d’autres parties de votre fichier Bicep.

Lorsque vous ajoutez un espace après le nom symbolique, une liste de types de ressources s’affiche. Continuez à taper storageacc jusqu’à ce que vous puissiez le sélectionner parmi les options disponibles.

Screenshot of selecting storage accounts for resource type.

Après avoir sélectionné Microsoft.Stockage/storageAccounts, les versions d’API disponibles s’affichent. Sélectionnez la dernière version. Dans la capture d’écran suivante, il s’agit de 2023-01-01.

Screenshot of select API version for resource type.

Après le guillemet simple pour le type de ressource, ajoutez = et un espace. Les options permettant d’ajouter des propriétés à la ressource s’affichent. Sélectionnez required-properties.

Screenshot of adding required properties.

Cette option ajoute toutes les propriétés correspondant au type de ressource requis pour le déploiement. Après avoir sélectionné cette option, votre compte de stockage dispose des propriétés suivantes :

resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Vous avez presque terminé. Fournissez simplement des valeurs pour ces propriétés.

Encore une fois, IntelliSense peut vous y aider. Définissez name sur storageAccountName. Il s’agit du paramètre qui contient un nom pour le compte de stockage. Pour location, affectez-lui la valeur location, qui est un paramètre que vous avez créé. Quand vous ajoutez sku.name et kind, IntelliSense présente les options valides.

Une fois l’opération effectuée, vous disposez des éléments suivants :

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'exampleVNet'
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Pour plus d’informations sur la syntaxe Bicep, consultez Structure bicep.

Visualiser les ressources

Vous pouvez afficher une représentation des ressources dans votre fichier.

Dans l’angle supérieur droit, sélectionnez le bouton du visualiseur pour ouvrir le visualiseur Bicep.

Screenshot of Bicep Visualizer.

Le visualiseur affiche les ressources définies dans le fichier Bicep avec les informations de dépendance des ressources. Les deux ressources définies dans ce démarrage rapide ne présentent aucune relation de dépendance et donc, vous ne voyez pas aucun connecteur entre elles.

Screenshot of Bicep Visualizer diagram.

Déployer le fichier Bicep

  1. Cliquez avec le bouton droit sur le fichier Bicep dans VS Code, puis sélectionnez Déployer le fichier Bicep.

    Screenshot of Deploy Bicep file.

  2. Dans la zone de texte Entrez un nom pour le déploiement, tapez deployStorageAndVNet, puis appuyez sur [ENTRÉE].

  3. Dans la zone de liste Sélectionner un groupe de ressources en haut, sélectionnez Créer un groupe de ressources.

  4. Entrez exampleRG en tant que nom de groupe de ressources, puis appuyez sur [ENTRÉE].

  5. Sélectionnez un lieu pour le groupe de ressources, sélectionnez USA Centre ou le lieu de votre choix, puis appuyez sur [ENTRÉE].

  6. Dans Sélectionner un fichier de paramètres, sélectionnez Aucun.

    Screenshot of Select parameter file.

Quelques instants sont nécessaires pour créer les ressources. Pour plus d’informations, consultez Déployer des fichiers Bicep avec Visual Studio Code.

Vous pouvez également déployer le fichier Bicep à l’aide d’Azure CLI ou d’Azure PowerShell :

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename

Une fois le déploiement terminé, un message doit s’afficher pour indiquer que le déploiement a réussi.

Nettoyer les ressources

Lorsque les ressources Azure ne sont plus nécessaires, utilisez Azure CLI ou le module Azure PowerShell afin de supprimer le groupe de ressources qui a été utilisé pour ce guide de démarrage rapide.

az group delete --name exampleRG

Étapes suivantes