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

Azure Logic App突然返回202而非200,触发条件问题求助

Azure Logic App HTTP触发器返回202而非200,触发条件导致无法正常执行

背景信息

  • 触发器:HTTP request
  • 触发条件:检查特定请求头是否存在
  • 动作:包含Azure Storage、Azure SQL、Outlook、O365Users等多个操作
  • 响应:HTTP response

已尝试操作

  • 移除新增的SQL Server动作:无变化
  • 移除最新添加的触发条件:无变化
  • 重新生成带SAS令牌的URL:无变化

观察结果

  • 问题出现后无Run History记录
  • Trigger History中显示状态码202的触发记录

更新说明

问题根源确认是触发条件:移除所有触发条件后,请求可正常触发应用,需了解正确的请求头检查方式,此前使用的表达式为@empty(triggerOutputs()['headers']['<header name>'])


解决方案

问题原因

此前使用的@empty(triggerOutputs()['headers']['<header name>'])存在逻辑问题:当指定请求头不存在时,triggerOutputs()['headers']['<header name>']会返回null,empty(null)的结果为true,导致触发条件判断为不满足。此时HTTP触发器会直接返回202(请求已接受但不执行后续流程),因此不会生成Run History记录。

正确的请求头检查表达式

以下两种表达式均可正确检查请求头是否存在:

  1. 检查请求头键是否存在于headers集合中:
    @contains(triggerOutputs()['headers'], '<header name>')
    
  2. 检查请求头值不为null:
    @not(equals(triggerOutputs()['headers']['<header name>'], null))
    

注意事项

触发条件的逻辑规则为:当表达式返回true时,才会触发后续流程执行;返回false时,触发器直接返回202,终止流程。需根据实际需求调整表达式的逻辑(例如如果需要请求头不存在时触发,可在表达式前添加@not())。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:59:57