【问题标题】:How to get nested properties using Azure CLI如何使用 Azure CLI 获取嵌套属性
【发布时间】:2019-01-17 00:11:01
【问题描述】:

我一直在使用下面的行从 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 资源,它仍然以相同的旧格式显示它。如果您尝试使用 Azure 资源资源管理器为您提供的 PowerShell 代码来查询资源,它不会返回任何内容。

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

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

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

【问题讨论】:

  • 在哪里可以找到“附加属性”?我在 ASE 中找不到它。它也像以前一样显示。
  • @CharlesXu 如果你运行我在这篇文章顶部的az resource show 命令...它应该显示additionalProperties 输出格式。它对我有用。
  • @CharlesXu 最奇怪的事情......当我今天早上回去运行相同的代码时......它现在又像过去一样工作了,现在我没有看到(或能够查询)和additionalProperties 对象。我发誓......昨天我看到这个时并没有受到影响:)
  • @CharlesXu 今天早上发现我在我的工作站上遇到了additionalProperties 的问题,因为它有一个过时的 AZ CLI 版本。我觉得这很奇怪,因为我最初在那个工作站上编写了这段代码,现在它的行为与我的笔记本电脑不同,笔记本电脑有更新版本的 AZ CLI 工具。更新了工作站,现在它们的行为方式相同。
  • 是否只是较旧的 CLI 版本会导致问题? CLI 的输出仅显示 Azure 定义的属性,它还显示在 Azure 模板中。我没看到。

标签: azure azure-powershell azure-cli


【解决方案1】:

像往常一样遍历对象:

--query "additionalProperties.internalIpAddress"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 2018-07-31
    相关资源
    最近更新 更多