创建 VM 后,可以检索有关 VM 的详细信息。 用于从资源获取信息的常见命令是
show
。
az vm show --name $vmName --resource-group $resourceGroup
虚拟机具有许多难以直观分析的属性。 返回的 JSON 包含有关身份验证、网络接口存储等的信息。 最重要的是,它包含 VM 连接到的资源的 Azure 对象 ID。 对象 ID 允许直接访问这些资源,以获取有关 VM 的配置和功能的详细信息。
为了提取对象 ID,需要使用--query
参数。 查询以 JMESPath 查询语言编写。 首先获取网络接口控制器 (NIC) 对象 ID。
az vm show --name $vmName \
--resource-group $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
az vm show --name $vmName `
--resource-group $resourceGroup `
--query 'networkProfile.networkInterfaces[].id' `
--output tsv
networkProfile
是顶级 JSON 的一个键,其中包含 networkInterfaces
作为子键。 如果 JSON 值是字典,则通过父键使用.
运算符引用其键。
该networkInterfaces
值是一个数组,因此它用[]
运算符展平。 此运算符在每个数组元素上运行查询的其余部分。 在这种情况下,它获取 id
每个数组元素的值。
输出格式 tsv
(制表符分隔值)保证仅包含由制表符和换行符组成的结果数据和空格。 由于返回的值是单个裸字符串,因此可以直接分配给 shell 变量是安全的。
有关查询 Azure CLI 输出的详细信息,请参阅 如何使用 JMESPath 查询查询 Azure CLI 命令输出
请继续,将 NIC 对象 ID 分配到 shell 变量中。