你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何在 Azure CLI 命令中使用变量

除了在命令中直接指定值以外,还可以通过多种方式提供值:

  • 使用 shell 变量
  • 设置要在多个命令中使用的订阅
  • 为某些参数创建默认值

本文介绍了在 Azure CLI 命令中指定值的各种方式。

先决条件

使用 shell 变量

Azure CLI 在 shell 中运行。 本文使用 Bash。 有关其他 shell 的信息,请参阅有效使用 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

此示例演示如何将值分配给重用的变量,如 MyResourceGroup 和 osType。 命令 az vm get-instance-view 与查询 storageProfile.osDisk.osType 配合使用会返回磁盘的 OS 类型。 使用 $() 包装此命令会将命令的返回值分配给 osType。 若要详细了解 --query 和 JMESPath 查询,请参阅如何使用 JMESPath 查询来查询 Azure CLI 命令输出

从另一个命令向变量分配值时,请确保该命令使用兼容的输出格式。 az vm get-instance-view 命令使用 tsv 输出格式。 此选项返回不带额外格式、键或其他符号的值。 某些输出格式包括结构或字符(如引号)。 有关详细信息,请参阅 Azure CLI 命令的输出格式

在此示例中,MySubscription 变量必须用引号引起来。 变量的值包含空格,命令无法对其进行解析。 如果仅使用订阅 ID,则不需要使用引号。

设置订阅

许多命令都需要特定的订阅。 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

此命令会一次性删除该组及其包含的所有资源。

另请参阅