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

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

如何尋找擴充功能

若要查看 Microsoft 提供及維護的 Azure CLI 延伸模組,請使用 az 擴充功能清單可用 的命令。

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.js的格式來建立私用延伸模組索引,然後將 Azure CLI 所使用的延伸模組索引 URL 設定為從版本開始 2.20.0 。 之後,您可以從私用延伸模組索引中依名稱安裝擴充功能。

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_install no

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