Share via


Créer un registre privé pour les modules Bicep

Pour partager des modules au sein de votre organisation, vous pouvez créer un registre de modules privé. Vous publiez des modules dans ce registre et accordez un accès en lecture aux utilisateurs qui ont besoin de déployer les modules. Une fois les modules partagés dans les registres, vous pouvez les référencer à partir de vos fichiers Bicep. Pour contribuer au registre de modules publics, consultez le guide de contribution.

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. Pour l’utiliser avec Azure PowerShell, vous devez également avoir la version 7.0.0 ou ultérieure.

Ressources de formation

Si vous préférez découvrir les paramètres via des instructions d’aide pas à pas, consultez Partager des modules Bicep en utilisant des registres privés.

Configurer un registre privé

Un registre Bicep est hébergé sur Azure Container Registry (ACR). Procédez comme suit afin de configurer votre registre pour les modules.

  1. Si vous disposez déjà d’un registre de conteneurs, vous pouvez l’utiliser. Si vous devez créer un registre de conteneurs, consultez Démarrage rapide : Créer un registre de conteneurs à l’aide d’un fichier Bicep.

    Vous pouvez utiliser l’une des références SKU disponibles pour le registre du module. La géoréplication du registre fournit aux utilisateurs une présence locale ou une sauvegarde à chaud.

  2. Obtenez le nom du serveur de connexion. Vous avez besoin de ce nom lors de la liaison au registre à partir de vos fichiers Bicep. Le format du nom du serveur de connexion est : <registry-name>.azurecr.io.

    Pour obtenir le nom du serveur de connexion, utilisez Get-AzContainerRegistry.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. Pour publier des modules dans un registre, vous devez avoir l’autorisation d’envoyer (push) une image. Pour déployer un module à partir d’un registre, vous devez avoir l’autorisation de tirer (pull) l’image. Pour plus d’informations sur les rôles qui accordent l’accès approprié, consultez Rôles et autorisations Azure Container Registry.

  4. Selon le type de compte que vous utilisez pour déployer le module, vous devrez peut-être personnaliser les informations d’identification qui sont utilisées. Ces informations d’identification sont nécessaires pour récupérer les modules à partir du registre. Par défaut, les informations d’identification sont obtenues à partir d’Azure CLI ou d’Azure PowerShell. Vous pouvez personnaliser la priorité d’obtention des informations d’identification dans le fichier bicepconfig.json. Pour plus d’informations, consultez Informations d’identification pour la restauration des modules.

Important

Le registre de conteneurs privé est uniquement disponible pour les utilisateurs ayant l’accès requis. Il est toutefois accessible via l’Internet public. Pour plus de sécurité, vous pouvez demander l’accès via un point de terminaison privé. Consultez Établir une connexion privée à un registre de conteneurs Azure à l’aide d’Azure Private Link.

La stratégie azureADAuthenticationAsArmPolicy doit être définie sur enabled pour le registre de conteneurs privé. Si azureADAuthenticationAsArmPolicy est défini sur disabled, vous obtenez un message d’erreur 401 (non autorisé) pendant la publication des modules. Consultez Azure Container Registry introduit la stratégie d’accès conditionnel.

Publier des fichiers dans le registre

Après avoir configuré le registre de conteneurs, vous pouvez y publier des fichiers. Utilisez la commande publish et fournissez tous les fichiers Bicep que vous avez l’intention d’utiliser comme modules. Indiquez l’emplacement cible du module dans votre registre. La commande de publication crée un modèle ARM qui sera stocké dans le Registre. Cela signifie que si vous publiez un fichier Bicep qui référence d’autres modules locaux, ces modules seront entièrement développés en tant que fichier JSON et publiés dans le Registre.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html

Avec Bicep CLI version 0.27.1 ou ultérieure, vous pouvez publier un module avec le code source Bicep en plus du modèle JSON compilé. Si un module est publié avec le code source Bicep dans un registre, vous pouvez appuyer sur F12 (Atteindre la définition) dans Visual Studio Code pour afficher le code Bicep. L’extension Bicep version 0.27 ou plus récente est requise pour afficher le fichier Bicep.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource

Avec le commutateur source, vous voyez une couche supplémentaire dans le manifeste :

Capture d’écran du registre du module bicep avec la source.

Notez que si le module Bicep fait référence à un module dans un registre privé, le point de terminaison ACR est visible. Pour masquer le point de terminaison complet, vous pouvez configurer un alias pour le registre privé.

Afficher les fichiers dans le registre

Pour afficher le module publié dans le portail :

  1. Connectez-vous au portail Azure.

  2. Recherchez registres de conteneurs.

  3. Sélectionnez votre registre.

  4. Sélectionnez Services ->Référentiels dans le menu de gauche.

  5. Sélectionnez le chemin d’accès au module (référentiel). Dans l’exemple précédent, le nom du chemin d’accès au module est bicep/modules/storage.

  6. Sélectionnez la balise. Dans l’exemple précédent, la balise est v1.

  7. La référence Artefact correspond à la référence que vous allez utiliser dans le fichier Bicep.

    Référence d’artefact du registre du module Bicep

Vous êtes maintenant prêt à référencer le fichier dans le registre à partir d’un fichier Bicep. Pour obtenir des exemples de la syntaxe à utiliser pour référencer un module externe, consultez Modules Bicep.


Utilisation des fichiers de registre Bicep

Quand vous tirez parti de fichiers bicep hébergés dans un registre distant, vous devez bien comprendre comment votre ordinateur local interagit avec le registre. Quand vous déclarez pour la première fois la référence au registre, votre éditeur local tente de communiquer avec Azure Container Registry et de télécharger une copie du registre dans votre cache local.

Le cache local se trouve sous :

  • Sur Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • Sur Linux

    /home/<username>/.bicep
    
  • Sur Mac

    ~/.bicep
    

Les changements du registre distant ne sont pas reconnus par votre machine locale tant qu’une commande restore n’a pas été exécutée avec le fichier spécifié qui inclut la référence du registre.

az bicep restore --file <bicep-file> [--force]

Pour plus d’informations, consultez la Commande restore.

Étapes suivantes