如何在 Azure CLI 命令中使用變數
除了直接在命令中指定值之外,您還可以以數種方式提供值:
- 使用殼層變數
- 設定訂用帳戶以用於多個命令
- 建立某些參數的預設值
本文討論在 Azure CLI 命令中指定值的各種方式。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
使用殼層變數
Azure CLI 會在殼層中執行。 本文使用Bash。 如需其他腳本語言的相關信息,請參閱 選擇正確的 Azure 命令行工具。 您可以使用 Bash 中的變數,將參數的值傳遞至命令。 搭配 Azure CLI 使用變數也允許重複使用分次或腳本中的命令。
此範例會建立與現有虛擬機上儲存磁碟相同類型的新記憶體磁碟。
# Bash script
# Assign values to variables
MyResourceGroup=ContosoRGforVM
MySubscription="Contoso subscription"
vmName=VM01
# Get a value for a variable based on an existing virtual machine
osType=$(az vm get-instance-view --resource-group $MyResourceGroup \
--name $vmName --subscription "$MySubscription" \
--query 'storageProfile.osDisk.osType' --output tsv)
# Create a disk of the same type by using the variable value
az disk create --resource-group $MyResourceGroup --name DestinationDisk --size-gb 20 --os-type $osType
此範例示範如何將值指派給重複使用的變數,例如 MyResourceGroup 和 osType。 與查詢storageProfile.osDisk.osType
結合的 az vm get-instance-view 命令會傳回磁碟的 OS 類型。 將命令包裝為 $()
,並將命令的傳回值指派給 osType
。 若要深入瞭解 --query
和 JMESPath 查詢,請參閱 如何使用 JMESPath 查詢來查詢 Azure CLI 命令輸出。
當您從另一個命令將值指派給變數時,請確定命令使用相容的輸出格式。 az vm get-instance-view 命令會使用tsv
輸出格式。 這個選項會傳回不含額外格式設定、索引鍵或其他符號的值。 某些輸出格式包含結構或字元,例如引號。 如需詳細資訊,請參閱 Azure CLI 命令的輸出格式。
在此範例中 ,MySubscription 變數必須以引號括住。 變數的值包含空格,命令無法剖析。 如果您只使用訂用帳戶標識碼,則不需要使用引號。
設定訂用帳戶
許多命令都需要特定的訂用帳戶。 Azure 資源存在於訂用帳戶中的資源群組中。 當您在會話中時,Azure CLI 會使用預設訂用帳戶。 若要查看目前的訂用帳戶值,請 執行 az account show 命令:
az account show --output table
您可能只能存取一個訂用帳戶。 如需詳細資訊,請參閱 搭配 Azure CLI 使用 Azure 訂用帳戶 您可以使用 az account set 命令來設定目前的訂用帳戶:
az account set --subscription "My Demos"
設定訂用帳戶之後,您可以省略 --Subscription
參數。 如需詳細資訊,請參閱 搭配 Azure CLI 使用 Azure 訂用帳戶。
建立預設值
您可以使用 az config set 命令來設定某些參數的值。 此範例會設定預設資源群組:
az config set defaults.group=ContosoRGforVM
執行此命令之後,您可以執行下列命令,在 ContosoRGforVM 資源群組中建立記憶體帳戶:
az storage account create --name storage135 --location eastus --sku Standard_LRS
請注意,命令中沒有指定的資源群組。 如需詳細資訊,請參閱 設定預設資源群組。
提示
以不同方式取得參數值的命令可能會造成混淆。 如果命令提供非預期的結果,例如找不到資源群組,可能會有預設值。
如果您遇到錯誤,請使用指定的 參數和值,再次執行命令。 參數的明確值一律優先於其他選項。
您可以透過這種方式指定數個參數的值。 如需詳細資訊,請參閱 Azure CLI 組態。
清除資源
如果您建立資源以嘗試本文中的任何命令,您可以使用 az group delete 命令來移除它們:
az group delete --name ContosoRGforVM
az group delete --name ContosoStorageRG
此命令會一次移除群組及其包含的所有資源。