如何在 Azure CLI 命令中使用變數

除了直接在命令中指定值之外,您還可以以數種方式提供值:

  • 使用殼層變數
  • 設定用於多個命令的訂用帳戶
  • 建立某些參數的預設值
  • 針對某些參數使用持續性值

本文討論在 Azure CLI 命令中指定值的各種方式。

Prerequisites

  • 使用 Bash 環境的 Azure Cloud Shell

    在新視窗中啟動 Cloud Shell

  • 如果想要,請安裝 Azure CLI 以執行 CLI 參考命令。

    • 如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入
    • 出現提示時,請在第一次使用時安裝 Azure CLI 擴充功能。 如需延伸模組詳細資訊,請參閱使用 Azure CLI 延伸模組
    • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade

使用殼層變數

Azure CLI 會在殼層中執行。 本文使用 Bash。 如需其他殼層的相關資訊,請參閱 有效地使用 Azure CLI。 您可以使用 Bash 中的變數,將參數的值傳遞至命令。 搭配 Azure CLI 使用變數也允許重複使用分次或腳本中的命令。

本範例會建立與現有虛擬機器上儲存體磁片相同類型的新儲存體磁片。

# 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

此範例示範如何將值指派給重複使用的變數,例如 MyResourceGrouposType。 與查詢 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 config param-persist on

開啟持續性之後,請建立資源群組:

az group create --name ContosoStorageRG --location eastus

只要持續性開啟,您就可以將 --resource-group 參數離開未來的命令。 下列命令會在 ContosoStorageRG 資源群組中建立儲存體帳戶:

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

此命令會移除群組及其一次包含的所有資源。

您可以執行 az config param-persist delete 命令來移除持續性參數:

az config param-persist delete --all

另請參閱