You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JMESPath列出对象的属性名称(Azure逻辑应用场景)

如何用JMESPath仅获取Logic App触发器的名称?

我需要查询Azure Logic App的触发器名称,但触发器的属性名称是未知的。当前使用以下Azure CLI命令:

az logic workflow list --query "[].{name:name, triggers:definition.triggers}"

得到的输出示例如下:

[
  {
    "name": "MyFirstLogicApp",
    "triggers": {
      "When_I_upload_a_new_video": {
        ...bunch of json...
      }
    }
  },
  {
    "name": "MySecondLogicApp",
    "triggers": {
      "When_an_S3_object_is_updated": {
        ...bunch of json...
      }
    }
  },
  {
    "name": "MyThirdLogicApp",
    "triggers": {
      "When_a_file_is_created_(properties_only)_(V2)": {
        ...bunch of json...
      }
    }
  },
  {
    "name": "MyFourthLogicApp",
    "triggers": {
      "When_a_file_is_modified_(properties_only)_(V2)": {
        ...bunch of json...
      }
    }
  }
]

请问有没有办法仅获取触发器的名称,而不返回其对应的JSON值?


可以通过JMESPath的keys()函数提取对象的属性名称,直接修改Azure CLI的--query参数即可实现需求:

方案1:返回触发器名称数组(支持多触发器场景)

如果Logic App可能存在多个触发器,用keys()函数返回所有触发器名称的数组:

az logic workflow list --query "[].{name:name, triggerNames:keys(definition.triggers)}"

输出示例:

[
  {
    "name": "MyFirstLogicApp",
    "triggerNames": [
      "When_I_upload_a_new_video"
    ]
  },
  {
    "name": "MySecondLogicApp",
    "triggerNames": [
      "When_an_S3_object_is_updated"
    ]
  }
]

方案2:返回单个触发器名称(适用于单触发器场景)

如果确认每个Logic App只有一个触发器,可以直接取数组的第一个元素:

az logic workflow list --query "[].{name:name, triggerName:keys(definition.triggers)[0]}"

输出示例:

[
  {
    "name": "MyFirstLogicApp",
    "triggerName": "When_I_upload_a_new_video"
  },
  {
    "name": "MySecondLogicApp",
    "triggerName": "When_an_S3_object_is_updated"
  }
]

内容的提问来源于stack exchange,提问作者Josh Withee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:34:54