Partage via


Démarrage rapide : Publier des modules Bicep dans le Registre de modules privés

Découvrez comment publier des modules Bicep dans le Registre de modules privés et comment appeler les modules à partir de vos fichiers Bicep. Le Registre de modules privés vous permet de partager des modules Bicep au sein de votre organisation. Pour en savoir plus, consultez Créer un Registre privé pour les modules Bicep. Pour contribuer au registre de modules publics, consultez le guide de contribution.

Prérequis

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

Pour utiliser des registres de module, vous devez disposer de Bicep CLI version 0.4.1008 ou ultérieure. Pour l’utiliser avec Azure CLI, vous devez également avoir la version 2.31.0 ou ultérieure d’Azure CLI. Pour l’utiliser avec Azure PowerShell, vous devez également avoir Azure PowerShell version 7.0.0 ou une version ultérieure.

Un registre Bicep est hébergé sur Azure Container Registry (ACR). Pour en créer un, consultez Démarrage rapide : Créer un registre de conteneurs à l’aide d’un fichier Bicep.

Pour configurer votre environnement pour le développement Bicep, consultez Installer les outils bicep. Après avoir effectué ces étapes, vous aurez Visual Studio Code et l’extension Bicep ou Visual Studio et l’extension Bicep.

Créer des modules Bicep

Un module est un fichier Bicep qui est déployé à partir d’un autre fichier Bicep. Tout fichier Bicep peut être utilisé comme un module. Vous pouvez utiliser le fichier Bicep suivant dans ce démarrage rapide. Ce code crée un compte de stockage :

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Enregistrez le fichier Bicep sous storage.bicep.

Publier des modules

Si vous n’avez pas d’Azure Container Registry (ACR), consultez les conditions préalables pour en créer un. Le nom du serveur de connexion de l’ACR est nécessaire. Le format du nom du serveur de connexion est : <registry-name>.azurecr.io. Pour obtenir le nom du serveur de connexion :

az acr show --resource-group <resource-group-name> --name <registry-name> --query loginServer

Utilisez la syntaxe suivante pour publier un fichier Bicep en tant que module dans un Registre de modules privés.

az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

Dans l’exemple précédent, ./storage.bicep est le fichier Bicep à publier. Mettez à jour le chemin d’accès du fichier si nécessaire. Le chemin d’accès au module a la syntaxe suivante :

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br est le nom de schéma d’un registre Bicep.
  • Le chemin d’accès au fichier est appelé repository dans Azure Container Registry. Le chemin d’accès au fichier peut contenir des segments séparés par le caractère /. Ce chemin d’accès est créé s’il n’existe pas dans le Registre.
  • Une balise est utilisée pour spécifier une version du module.

Pour vérifier les modules publiés, vous pouvez répertorier le référentiel ACR :

az acr repository list --name <registry-name> --output table

Appeler des modules

Pour appeler un module, créez un fichier Bicep dans Visual Studio Code. Dans le nouveau fichier Bicep, entrez la ligne suivante.

module stgModule 'br:<registry-name>.azurecr.io/bicep/modules/storage:v1'

Remplacez <registry_name> par un nom de registre unique. La restauration du module dans votre cache local prend quelques instants. Une fois le module restauré, la ligne courbe rouge sous le chemin d’accès du module est absente. À la fin de la ligne, ajoutez = et un espace, puis sélectionnez required-properties, comme illustré dans la capture d’écran suivante. La structure du module est remplie automatiquement.

Propriétés requises pour l’extension Bicep pour Visual Studio Code

L’exemple suivant est un fichier Bicep complet.

@minLength(3)
@maxLength(11)
param namePrefix string
param location string = resourceGroup().location

module stgModule 'br:ace1207.azurecr.io/bicep/modules/storage:v1' = {
  name: 'stgStorage'
  params: {
    location: location
    storagePrefix: namePrefix
  }
}

Enregistrez le fichier Bicep localement, puis utilisez Azure CLI ou Azure PowerShell pour le déployer :

resourceGroupName = "{provide-a-resource-group-name}"
templateFile="{provide-the-path-to-the-bicep-file}"

az group create --name $resourceGroupName --location eastus

az deployment group create --resource-group $resourceGroupName --template-file $templateFile

À partir du portail Azure, vérifiez que le compte de stockage a bien été créé.

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.

resourceGroupName = "{provide-the-resource-group-name}"

az group delete --name $resourceGroupName

Étapes suivantes