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 pouvez ensuite publier des modules dans ce Registre et accorder un accès en lecture aux utilisateurs qui doivent 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 utiliser des modules publics, consultez modules Bicep.
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.
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.
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
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.
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 est stocké dans le Registre. Cela signifie que si vous publiez un fichier Bicep qui référence d’autres modules locaux, ces modules sont 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 autre couche dans le manifeste :
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 :
Connectez-vous au portail Azure.
Recherchez registres de conteneurs.
Sélectionnez votre registre.
Sélectionnez Services ->Référentiels dans le menu de gauche.
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.
Sélectionnez la balise. Dans l’exemple précédent, la balise est v1.
La référence d’artefact correspond à la référence que vous utilisez dans le fichier 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
Lorsque vous utilisez des fichiers bicep hébergés dans un registre distant, il est important de comprendre comment votre ordinateur local interagit avec le Registre. Lorsque vous déclarez d’abord 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
Votre ordinateur local peut reconnaître les modifications apportées au Registre distant jusqu’à ce que vous exécutiez un restore
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 restore
commande.
Étapes suivantes
- Pour en savoir plus sur les modules, consultez Modules Bicep.
- Pour configurer des alias pour un registre de modules, consultez Ajouter des paramètres de module dans le fichier config Bicep.
- Pour plus d’informations sur la publication et la restauration des modules, consultez Commandes CLI Bicep.