Utiliser et gérer les extensions avec Azure CLI

L’interface de ligne de commande Azure offre la possibilité de charger des extensions. Les extensions sont des roues (wheels) Python qui ne sont pas fournies avec l’interface CLI mais qui sont exécutées en tant que commandes CLI. Avec les extensions, vous obtenez l’accès aux commandes expérimentales et préliminaires, ainsi que la capacité d’écrire vos propres interfaces CLI. Cet article explique comment gérer les extensions et répond aux questions courantes concernant leur utilisation.

Comment rechercher des extensions

Pour voir les extensions Azure CLI fournies et gérées par Microsoft, utilisez la commande az extension list-available.

az extension list-available --output table

Nous hébergeons également une liste des extensions sur le site de la documentation.

Comment installer des extensions

Installer les extensions manuellement

Une fois que vous avez trouvé une extension à installer, utilisez la commande az extension add pour l’obtenir. Si l’extension est répertoriée dans az extension list-available, vous pouvez installer l’extension par nom.

az extension add --name <extension-name>

Si l’extension provient d’une ressource externe ou si vous disposez d’un lien direct vers celle-ci, fournissez le chemin d’accès local ou l’URL source. L’extension doit être un fichier de roue Python compilé.

az extension add --source <URL-or-path>

Vous pouvez également créer un index d’extension privée en suivant le format dans index.json, puis l’affecter à l’URL de l’index d’extension utilisée par Azure CLI à partir de la version 2.20.0. Vous pouvez ensuite installer l’extension par nom à partir de l’index d’extension privée.

az config set extension.index_url=<URL>
az extension add --name <extension-name>

Une fois qu’une extension est installée, elle se trouve sous la valeur de la variable d’interpréteur de commandes $AZURE_EXTENSION_DIR. Si cette variable n’est pas définie, par défaut la valeur est $HOME/.azure/cliextensions sur Linux et macOS, et %USERPROFILE%\.azure\cliextensions sur Windows.

Installer les extensions automatiquement

Lorsque vous exécutez une commande d’extension qui n’est pas installée, l’interface Azure CLI peut reconnaître la commande que vous exécutez et installer automatiquement l’extension pour vous à partir de la version 2.10.0. Cette fonctionnalité, appelée installation dynamique, est activée par défaut à compter de la version 2.12.0. Vous pouvez également l’activer par le biais de la configuration pour les versions prises en charge précédentes.

az config set extension.use_dynamic_install=yes_prompt

Utilisez la commande de configuration suivante pour activer l’installation dynamique sans invite.

az config set extension.use_dynamic_install=yes_without_prompt

Utilisez la commande de configuration suivante pour désactiver la fonctionnalité d’installation dynamique afin de rétablir le comportement par défaut. La commande d’extension retourne une erreur de commande introuvable si l’extension n’est pas installée.

az config set extension.use_dynamic_install=no

Par défaut, l’exécution d’une commande d’extension qui demande l’installation dynamique se poursuit après l’installation de l’extension. Vous pouvez changer le comportement par défaut pour quitter la commande sans réexécution en affectant à la propriété run_after_dynamic_install la valeur no.

az config set extension.run_after_dynamic_install=no

Comment mettre à jour les extensions

Si vous installez une extension par son nom, mettez-la à jour à l’aide de la commande az extension update.

az extension update --name <extension-name>

Sinon, il est possible de mettre à jour une extension à partir de la source, en suivant les instructions de la section Installer les extensions.

Si vous ne pouvez pas utiliser l’interface CLI pour résoudre un nom d’extension, désinstallez-la et tentez de la réinstaller. L’extension aurait également pu faire partie de l’interface CLI de base. Essayez de mettre à jour l’interface de ligne de commande en suivant les instructions de la section Installer Azure CLI et vérifiez que les commandes de l’extension ont été ajoutées.

Comment désinstaller les extensions

Si vous n’avez plus besoin d’une extension, vous pouvez la supprimer avec la commande az extension remove.

az extension remove --name <extension-name>

Vous pouvez également supprimer une extension manuellement en la supprimant de l’emplacement où elle a été installée. La variable d’interpréteur de commandes $AZURE_EXTENSION_DIR définit l’emplacement dans lequel sont installés les modules. Si cette variable n’est pas définie, par défaut la valeur est $HOME/.azure/cliextensions sur Linux et macOS, et %USERPROFILE%\.azure\cliextensions sur Windows.

rm -rf $AZURE_EXTENSION_DIR/<extension-name>

Questions fréquentes (FAQ)

Voici les réponses à d’autres questions courantes sur les extensions de CLI.

Quels sont les formats de fichiers autorisés pour l’installation ?

Actuellement, seuls les fichiers Wheel Python compilés peuvent être installés en tant qu’extensions.

Les extensions peuvent-elles remplacer des commandes existantes ?

Oui. Les extensions peuvent remplacer des commandes existantes, mais avant l’exécution d’une commande qui a été remplacée, la CLI affiche un avertissement.

Comment puis-je savoir si une extension est en version préliminaire ?

La documentation et le contrôle de version d’une extension indiquent si elle figure dans la préversion. Microsoft publie souvent des préversions de commandes sous forme d’extensions CLI, avec la possibilité de les déplacer ultérieurement dans le produit principal de la CLI. Lorsque les commandes sont déplacées en dehors des extensions, vous devez désinstaller l’ancienne extension.

Les extensions peuvent-elles dépendre les unes des autres ?

Non. Étant donné que l’interface CLI ne garantit pas un ordre de chargement, les dépendances peuvent ne pas être satisfaites. La suppression d’une extension n’affecte pas les autres.

Les extensions sont-elles mises à jour en même temps que la CLI ?

Non. Les extensions sont à mettre à jour séparément, comme décrit dans la section Mettre à jour les extensions.

Comment développer votre propre extension ?

Pour obtenir de l’aide, reportez-vous au dépôt officiel. Azure/azure-cli-extensions