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

В Azure CLI можно загружать расширения. Расширения Azure CLI квалифицируются как пакеты Python wheel, которые не поставляются вместе с CLI, но выполняются в виде команд 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.

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

При выполнении команды расширения, которая не установлена, Azure CLI может распознать выполняемую команду и автоматически установить расширение, начиная с версии 2.10.0. Эта возможность, называемая динамической установкой, включена по умолчанию в версиях, начиная с 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