如何使用 Azure CLI 获取嵌套属性

How to get nested properties using Azure CLI

我一直在使用下面的行从 Azure 中的 ILB 应用服务环境中获取 internalIpAddress 属性 的值:

az resource show `
  --ids "/subscriptions/$subscription_id/resourceGroups/$ilbase_rg_name/providers/Microsoft.Web/hostingEnvironments/$ilbase_name/capacities/virtualip" `
  --query "internalIpAddress"

virtualip 资源的格式是:

{
  "internalIpAddress": "10.30.0.139",
  "outboundIpAddresses": [
    "13.72.76.135"
  ],
  "serviceIpAddress": "13.72.76.135",
  "vipMappings": []
}

好像在过去几天,virtualip 资源的格式现在变成了这样:

{
  "additionalProperties": {
    "internalIpAddress": "10.30.0.139",
    "outboundIpAddresses": [
      "13.72.76.135"
    ],
    "serviceIpAddress": "13.72.76.135",
    "vipMappings": []
  },
  "id": null,
  "identity": null,
  "kind": null,
  "location": null,
  "managedBy": null,
  "name": null,
  "plan": null,
  "properties": null,
  "sku": null,
  "tags": null,
  "type": null
}

现在我的命令不再有效了...它 returns 什么都没有。我可以修改我的命令以获取整个 additionalProperties 对象,但我不知道如何解析它以获取 internalIpAddress 属性.

的值

另一个有趣的注意事项是,如果您转到 Azure 资源浏览器并导航到 virtualip 资源,它仍会以相同的旧格式显示它。如果您尝试使用 Azure 资源浏览器提供给您的 PowerShell 代码来查询资源,它 returns 什么都没有。

这是 Azure 资源浏览器据说使用的 PowerShell:

Get-AzureRmResource -ResourceGroupName MyRG -ResourceType Microsoft.Web/hostingEnvironments/capacities -ResourceName "myilbase/virtualip" -ApiVersion 2018-02-01

寻求有关如何从 additionalProperties 对象

解析嵌套 internalIpAddress 属性 的帮助

像往常一样遍历对象:

--query "additionalProperties.internalIpAddress"