Partage via


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

Ce démarrage rapide vous guide tout au long de la procédure de création d’un fichier Bicep avec Visual Studio. Vous créerez ensuite un compte de stockage et un réseau virtuel. Vous découvrirez également comment l’extension Bicep simplifie le développement en fournissant la cohérence des types, la validation de la syntaxe et la saisie semi-automatique.

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

Prérequis

Ajouter un extrait de code de ressource

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

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

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

Capture d'écran de l'ajout d'un extrait de code pour le réseau virtuel.

Conseil

Si vous ne voyez pas ces options Intellisense dans Visual Studio, 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. Le service démarre généralement rapidement, mais vous ne verrez pas d’options IntelliSense tant qu’il n’aura pas démarré.

Votre fichier Bicep contient maintenant le code suivant :

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-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'
        }
      }
    ]
  }
}

Cet extrait de code contient toutes les valeurs dont vous avez besoin pour définir un réseau virtuel. Cela étant, vous pouvez modifier ce code pour répondre à 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'

Notez que l’emplacement a un trait de soulignement rouge. Cela indique un problème. Placez le curseur sur l’emplacement. Le message d’erreur est : Le nom « emplacement » n’existe pas dans le contexte actuel. Nous allons créer un paramètre d’emplacement dans la section suivante.

Ajouter des paramètres

À présent, nous allons ajouter deux paramètres pour le nom du compte de stockage et l’emplacement. En haut du fichier, ajoutez :

param storageName

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

Capture d'écran de l'ajout du type string au paramètre.

Vous disposez du paramètre suivant :

param storageName string

Ce paramètre fonctionne correctement, mais les comptes de stockage présentent des limites en termes de longueur de nom. Le nom doit contenir entre 3 et 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.

Capture d'écran de l'ajout de décorateurs au paramètre.

Ajoutez les deux éléments décoratifs et spécifiez les limites de caractères, comme indiqué ci-dessous :

@minLength(3)
@maxLength(24)
param storageName string

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 storageName string

Le paramètre de nom du compte de stockage est prêt à être utilisé.

Ajoutez un autre paramètre d’emplacement :

param location string = resourceGroup().location

Ajouter une ressource

Plutôt que d’utiliser un extrait de code afin de définir le compte de stockage, nous allons utiliser IntelliSense pour définir les valeurs. IntelliSense facilite cette étape en vous évitant de devoir entrer 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 d’entrer storage jusqu’à ce que vous puissiez le sélectionner dans les options disponibles.

Capture d'écran de la sélection des comptes de stockage pour le type de ressource.

Après avoir sélectionné Microsoft.Stockage/storageAccounts, les versions d’API disponibles s’affichent. Sélectionnez 2021-09-01 ou la dernière version de l’API. Nous vous recommandons d’utiliser la dernière version de l’API.

Capture d'écran de la sélection de la version API pour le type de ressource.

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.

Capture d'écran de l'ajout des propriétés requises.

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-04-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

Il y a quatre espaces réservés dans le code. Utilisez [TAB] pour les parcourir et entrer les valeurs. Encore une fois, IntelliSense peut vous y aider. Définissez name sur storageName. Il s’agit du paramètre qui contient un nom pour le compte de stockage. Pour location , affectez-lui la valeur location. Lors de l’ajout d’un nom et d’un type de référence SKU, IntelliSense présente les options valides.

Lorsque vous avez terminé, vous disposez des éléments suivants :

@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 storageName string
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
  name: storageName
  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'
        }
      }
    ]
  }
}

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

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

Déployer le fichier Bicep

Le déploiement de fichiers Bicep ne peut pas encore être effectué à partir de Visual Studio. Vous pouvez 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 storageName=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