json - 嵌套 json 的 Azure JMESPATH 查询

标签 json azure grep cut jmespath

我尝试仅提取此 AZ CLI 查询结果的路径部分:

az network application-gateway show --query urlPathMaps --resource-group dev-aag --name dev-aag-gateway

我不确定是否应该改用 az network application-gateway list

这是第一个查询的结果,但是我无法仅提取路径部分 - 这是因为路径 是嵌套的吗?

        "backendAddressPool": {
          "id": "/subscriptions/42xxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/dev-aag/providers/Microsoft.Network/applicationGateways/dev-aag-gateway/backendAddressPools/co20225020a-backend-pool",
          "resourceGroup": "dev-aag"
        },
        "backendHttpSettings": {
          "id": "/subscriptions/42xxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/dev-aag/providers/Microsoft.Network/applicationGateways/dev-aag-gateway/backendHttpSettingsCollection/dev-aag-httpsetting",
          "resourceGroup": "dev-aag"
        },
        "etag": "W/\"9f2d3xxc-2cbd-49fr-8726-432c7ef00de7\"",
        "firewallPolicy": null,
        "id": "/subscriptions/42xxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/dev-aag/providers/Microsoft.Network/applicationGateways/dev-aag-gateway/urlPathMaps/dev-aag-https-routing-rule/pathRules/co20225020a-cqvgkj9xxxxx9bcu-url",
        "loadDistributionPolicy": null,
        "name": "co20225020a-cqvgkj9xxxxx9bcu-url",
        "paths": [
          "/co20225020a/cqvgkj9xxxxx9bcu/*"
        ],
        "provisioningState": "Succeeded",
        "redirectConfiguration": null,
        "resourceGroup": "dev-aag",
        "rewriteRuleSet": null,
        "type": "Microsoft.Network/applicationGateways/urlPathMaps/pathRules"
      }

我正在尝试像这样使用 grep 和 cut,但也许我应该使用其他东西:

az 网络应用程序网关显示 --query urlPathMaps --resource-group dev-aag --name dev-aag-gateway | grep 路径 |切-d“:”-f1-19

我应该使用什么来完成这项工作?

最佳答案

  • az network application-gateway list -->如果您想要列出特定订阅下的所有应用程序网关,则可以使用。
  • az network application-gateway show --> 如果您想要提取特定应用网关的属性,则应使用。

有关 Azure CLI application gateway cmdlets 的更多信息,请参阅本文.

要在 pathRules 中的 urlPathMaps 下提取 path 列表,您需要在 az 网络应用程序中使用以下 JMESPath 查询 - gateway show cmdlet。

 az network application-gateway show -n <AppGatewayName> -g <ResourceGroupName> --query urlPathMaps[].pathRules[].paths

我已经在 Azure Cloud shell 中对此进行了测试,它工作正常,我建议您也从您的端进行验证。

**这是示例输出屏幕截图供引用:**

enter image description here

关于json - 嵌套 json 的 Azure JMESPATH 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74160040/

相关文章:

java - 如何将JSON对象解析为 `Map<String, HashSet<String>>`

json - 上传已编译的Dart应用程序时找不到JSON文件

php - Azure Stack API Rest 在 PHP 中使用 CURL 创建存储帐户

linux - 如何在名称包含另一个字符串且在过去 7 天内在 Linux 中创建的文件中搜索字符串?

json - Swift - 编码 key 未在 HTTP POST 中正确发送

json - RESTful API 的 Mimetypes

azure - Azure 数据工厂数据流中动态模式的“存在条件”

azure - FTP 到 Azure Blob 存储

linux - Grep 包含 string1 或不包含 string2 的行

git - git grep 和 vim 中的技巧