Использование расширений и управление ими с помощью Azure CLI

В Azure CLI можно загружать расширения. Расширения Azure CLI квалифицируются как пакеты Python wheel, которые не поставляются вместе с CLI, но выполняются в виде команд CLI. Расширения позволяют получить доступ к экспериментальным командам и предварительным выпускам команд. Кроме того, расширения позволяют создавать собственные интерфейсы командной строки. В этой статье описано, как управлять расширениями, и описаны распространенные сценарии их использования.

Как найти расширение

Список расширений Azure CLI, которые предоставляет и поддерживает Майкрософт, можно просмотреть с помощью команды az extension list-available.

az extension list-available --output table

Список расширений также можно найти на веб-сайте с документацией.

Как устанавливать расширения

Установка расширений вручную

Когда вы найдете расширение для установки, используйте команду az extension add, чтобы получить его. Если расширение включено в список в az extension list-available, его можно установить по имени.

az extension add --name <extension-name>

Если требуется расширение из внешнего ресурса или у вас есть прямая ссылка на него, можно указать URL-адрес источника или локальный путь. Расширение должно представлять собой скомпилированный файл Python wheel.

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

Кроме того, вы можете создать индекс приватного расширения, следуя формату в index.json, а затем задать URL-адрес индекса расширения, используемый Azure CLI, начиная с версии 2.20.0. После этого расширение можно установить по имени из индекса приватного расширения.

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

Установленное расширение можно найти в папке, указанной в переменной среды $AZURE_EXTENSION_DIR. Если эта переменная не задана, в Linux и macOS по умолчанию устанавливается значение $HOME/.azure/cliextensions, а в Windows — %USERPROFILE%\.azure\cliextensions.

Установка расширений автоматически

Начиная с версии 2.10.0, при запуске команды расширения, которое не установлено, Azure CLI может распознать выполняемую команду и автоматически установить расширение. Эта возможность, называемая динамической установкой, включена по умолчанию в версиях, начиная с 2.12.0. Ее также можно включить для предыдущих поддерживаемых версий с помощью конфигурации.

az config set extension.use_dynamic_install=yes_prompt

Используйте следующую команду конфигурации, чтобы включить динамическую установку без запроса.

az config set extension.use_dynamic_install=yes_without_prompt

Используйте следующую команду конфигурации, чтобы отключить динамическую установку и вернуться к поведению по умолчанию. Если расширение не установлено, команда расширения вернет соответствующую ошибку.

az config set extension.use_dynamic_install=no

По умолчанию команда расширения, запрашивающая динамическую установку, будет продолжать работу после установки расширения. Вы можете изменить поведение по умолчанию и сделать так, чтобы команда завершалась, не выполняя повторный запуск, задав для свойства run_after_dynamic_install значение no.

az config set extension.run_after_dynamic_install=no

Как обновлять расширения

Если расширение установлено с указанием имени, обновите его с помощью команды az extension update.

az extension update --name <extension-name>

В противном случае расширение можно обновить из источника, выполнив инструкции по установке расширений.

Если имя расширения по какой-либо причине не может быть разрешено CLI, удалите это расширение и установите повторно. Расширение также может стать элементом основного пакета CLI. Попробуйте обновить CLI, как описано в руководстве по установке Azure CLI, и проверьте, добавлены ли команды расширения.

Как удалять расширения

Если расширение больше не нужно, удалите его с помощью команды az extension remove.

az extension remove --name <extension-name>

Также расширение можно вручную удалить из расположения, в котором оно установлено. Переменная среды $AZURE_EXTENSION_DIR определяет путь установки модулей. Если эта переменная не задана, в Linux и macOS по умолчанию устанавливается значение $HOME/.azure/cliextensions, а в Windows — %USERPROFILE%\.azure\cliextensions.

rm -rf $AZURE_EXTENSION_DIR/<extension-name>

ВОПРОСЫ И ОТВЕТЫ

Ниже приведены ответы на некоторые часто задаваемые вопросы о расширениях CLI.

Какие форматы файлов разрешены для установки?

Сейчас в качестве расширений можно устанавливать только wheel-файлы Python.

Могут ли расширения заменить существующие команды?

Да. Расширения могут заменить существующие команды. Но перед выполнением замененной команды в CLI отобразится предупреждение.

Как понять, что расширение выпущено в предварительной версии?

В документации по расширению и формате версии будет указано, является ли оно предварительным выпуском. Майкрософт часто выпускает предварительные версии команд в виде расширений CLI с возможностью последующего включения в основной продукт CLI. Когда команды больше не являются расширениями, старое расширение следует удалить.

Могут ли расширения зависеть друг от друга?

Нет. Так как CLI не гарантирует порядок загрузки, зависимости могут быть не удовлетворены. Удаление одного расширения не влияет на другие.

Обновляются ли расширения вместе с CLI?

Нет. Расширения следует обновлять отдельно, как описано в разделе Обновление расширений.

Разработка собственного расширения

См. сведения в официальном репозитории. Azure/azure-cli-extensions