如何使用 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
命令縮短 group
為 ls
。
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 問題 , 以便我們可以提供修正。