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

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

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

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

必要條件

使用殼層變數

Azure CLI 會在殼層中執行。 本文使用Bash。 如需其他殼層的相關信息,請參閱 有效使用 Azure CLI。 您可以使用 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

此範例示範如何將值指派給重複使用的變數,例如 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 group delete 命令來移除它們

az group delete --name ContosoRGforVM
az group delete --name ContosoStorageRG

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

另請參閱