使用和管理 Azure CLI 的擴充功能

Azure CLI 提供載入擴充功能的功能。 Azure CLI 的擴充功能的特性是 Python 方向盤,不會隨附為 CLI 的一部分,而是以 CLI 命令的形式執行。 透過擴充功能,您可以存取實驗性和發行前版本命令,以及撰寫您自己的 CLI 介面的能力。 本文涵蓋如何管理擴充功能,並回答關於其使用上的常見問題。

如何尋找擴充功能

若要查看 Microsoft 提供的 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>

如果擴充功能是來自於外部資源,或者您擁有該擴充功能的直接連結,可以提供來源網址或本機路徑。 擴充功能必須是編譯過的 Python Wheels 檔案。

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

您也可以依照 index.json中的格式建置私人擴充功能索引,然後從版本 2.20.0 開始,將 Azure CLI 所使用的擴充功能索引 URL 設定為它。 之後,您可以從私人擴充功能索引依名稱安裝擴充功能。

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

安裝擴充功能之後,便可以在 $AZURE_EXTENSION_DIR shell 變數的值下找到該擴充功能。 如果未設定這個變數,則 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_installno ,讓命令結束而不重新執行 。

az config set extension.run_after_dynamic_install=no

如何更新擴充功能

如果您依名稱安裝擴充功能,請使用 az extension update 加以更新

az extension update --name <extension-name>

否則,可以按照安裝擴充功能的指示,從來源更新擴充功能。

如果您無法使用 CLI 解析延伸模組名稱,請卸載它並嘗試重新安裝。 擴充功能可能也已屬於基底 CLI。 請嘗試依安裝 Azure CLI中的說明更新 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 延伸模組的相關常見問題解答。

允許使用何種檔案格式安裝?

目前,只有編譯的 Python Whell 可以安裝為延伸模組。

延伸模組可以取代現有的命令嗎?

是。 擴充功能可能會取代現有的命令,但在執行已取代 CLI 的命令之前,發出警告。

如何判斷延伸模組是否在發行前版本?

延伸模組的檔和版本控制會顯示其是否在發行前版本。 Microsoft 通常會發行預覽命令作為 CLI 擴充功能,並可選擇稍後將它們移至主要 CLI 產品。 當命令移出擴充功能時,應解除安裝舊版擴充功能。

延伸模組會彼此相依嗎?

不知道。 因為 CLI 不保證載入順序,可能會不符合相依性。 移除延伸模組不會影響任何其他專案。

延伸模組會與 CLI 一併更新嗎?

不知道。 延伸模組必須個別更新,如更新延伸模組中所述。

如何開發自己的擴充功能?

如需詳細資訊,請參閱官方存放庫。 Azure/azure-cli-extensions