你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何在 Azure CLI 命令中使用变量
除了在命令中直接指定值以外,还可以通过多种方式提供值:
- 使用 shell 变量
- 设置要在多个命令中使用的订阅
- 为某些参数创建默认值
本文介绍了在 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。
使用 shell 变量
Azure CLI 在 shell 中运行。 本文使用 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。 命令 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
此命令会一次性删除该组及其包含的所有资源。