Share via


如何使用 Azure CLI 別名擴充功能

別名延伸模組可讓使用者使用現有的命令來定義 Azure CLI 的自訂命令。 別名可藉由允許快捷方式來協助保持工作流程簡單。 Jinja2 範本引擎提供 Azure CLI 別名,並提供進階引數處理。

注意

別名延伸模組處於公開預覽狀態。 功能和組態檔格式可能會變更。

安裝別名擴充功能

使用別名擴充功能所需的最低 Azure CLI 版本是 2.0.28 。 若要檢查 CLI 版本,請執行 az --version 。 如果您需要更新安裝,請遵循安裝 Azure CLI 中的 指示。

使用 az extension add 命令安裝別名擴充功能。

az extension add --name alias

使用 az extension list 確認延伸模組的安裝。 如果別名擴充功能已正確安裝,則會列在命令輸出中。

az extension list --output table --query '[].{Name:name}'
Name
------
alias

讓別名延伸模組保持最新狀態

別名擴充功能處於使用中開發狀態,且會定期發行新版本。 當您更新 CLI 時,不會安裝新版本。 使用 az extension update 安裝延伸模組的更新

az extension update --name alias

管理 Azure CLI 的別名

別名延伸模組可讓您建立和管理其他 CLI 命令的別名。 若要檢視所有可用的命令和參數詳細資料,請使用 --help 執行別名命令。

az alias --help

建立簡單的別名命令

別名的其中一個用法是縮短現有的命令群組或命令名稱。 例如,您可以將命令群組縮短為 rg ,並將 list 命令縮短 groupls

az alias create --name rg --command group
az alias create --name ls --command list

這些新定義的別名現在可在其定義的任何位置使用。

az rg list
az rg ls
az vm ls

請勿在 az 別名命令中包含 。

別名也可以是完整命令的快捷方式。 下一個範例會列出可用的資源群組及其資料表輸出中的位置:

az alias create --name ls-groups --command "group list --query '[].{Name:name, Location:location}' --output table"

現在 ls-groups 可以像任何其他 CLI 命令一樣執行。

az ls-groups

使用引數建立別名命令

您也可以將位置引數新增至別名命令,方法是將它們 {{ arg_name }} 包含在別名名稱中。 大括弧內的空白字元是必要的。

az alias create --name "alias_name {{ arg1 }} {{ arg2 }} ..." --command "invoke_including_args"

下一個範例別名示範如何使用位置引數來取得 VM 的公用 IP 位址。

az alias create \
    --name "get-vm-ip {{ resourceGroup }} {{ vmName }}" \
    --command "vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }}
        --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress"

執行此命令時,您會為位置引數提供值。

az get-vm-ip MyResourceGroup MyVM

您也可以在執行時間評估的別名命令中使用環境變數。 下一個範例會新增 create-rg 別名,該別名會在 中 eastus 建立資源群組,並新增標記 owner 。 此標記會指派本機環境變數 USER 的值。

az alias create \
    --name "create-rg {{ groupName }}" \
    --command "group create --name {{ groupName }} --location eastus --tags owner=\$USER"

若要在別名的命令內註冊環境變數,必須逸出貨幣符號 $

使用 Jinja2 範本處理引數

Jinja2 會在別名延伸模組中執行引數替代。 Jinja2 範本允許操作引數。

使用 Jinja2 範本,您可以撰寫別名,其採用與基礎命令不同的引數類型。 例如,您可以建立採用儲存體 URL 的別名。 接著會剖析此 URL,以將帳戶和容器名稱傳遞至儲存體命令。

az alias create \
    --name 'storage-ls {{ url }}' \
    --command "storage blob list
        --account-name {{ url.replace('https://', '').split('.')[0] }}
        --container-name {{ url.replace('https://', '').split('/')[1] }}"

若要瞭解 Jinja2 範本引擎,請參閱 Jinja2 檔

別名組態檔

建立和修改別名的另一種方式是改變別名組態檔。 別名命令定義會寫入組態檔,位於 $AZURE_CONFIG_DIR/alias 。 的預設值 AZURE_CONFIG_DIR 位於 $HOME/.azure macOS 和 Linux 上,以及 %USERPROFILE%\.azure Windows 上。 別名組態檔是以 INI 組態檔格式撰寫。 別名命令的格式為:

[alias_name]
command = invoked_commands

對於具有位置引數的別名,別名命令的格式為:

[alias_name {{ arg1 }} {{ arg2 }} ...]
command = invoked_commands_including_args

透過別名組態檔建立具有引數的別名命令

下一個範例顯示具有引數之命令的別名。 此命令會取得 VM 的公用 IP 位址。 別名命令必須全部位於單一行,並使用別名名稱中的所有引數。

[get-vm-ip {{ resourceGroup }} {{ vmName }}]
command = vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }} --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress

卸載別名擴充功能

若要卸載擴充功能,請使用 az extension remove 命令。

az extension remove --name alias

如果您因為延伸模組的錯誤或其他問題而卸載,請提出 GitHub 問題 以便我們可以提供修正。