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

时间:2019-01-17 00:11:01

标签: azure azure-powershell 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
}

现在我的命令不再起作用...它什么也不返回。我可以修改命令以获取整个additionalProperties对象,但是然后我不知道如何解析它以仅获取internalIpAddress属性的值。

关于此的另一个有趣的注意事项是,如果转到Azure资源浏览器并导航到virtualip资源,它仍然以相同的旧格式显示它。如果您尝试使用PowerShell代码,Azure资源资源管理器会为您提供查询资源的信息,它什么也不会返回。

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

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

正在寻找有关如何从internalIpAddress对象解析嵌套additionalProperties属性的帮助

1 个答案:

答案 0 :(得分:1)

像平常一样遍历对象:

scale_both