Как получить вложенные свойства с помощью Azure CLI - PullRequest
0 голосов
/ 17 января 2019

Я использовал строку ниже, чтобы получить значение свойства internalIpAddress из среды службы приложений ILB в Azure:

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 Resource Explorer дает вам для запроса ресурса, он ничего не возвращает.

Вот PowerShell, который обозреватель ресурсов Azure сказал использовать:

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

Нужна помощь в разборе вложенного свойства internalIpAddress из additionalProperties объекта

1 Ответ

0 голосов
/ 17 января 2019

просто обойдите объект, как обычно:

--query "additionalProperties.internalIpAddress"
...