Azure Logic Apps (Standard) 会话型Service Bus订阅触发器未触发原因问询
Azure Logic Apps (Standard) 对接启用会话的Service Bus订阅问题解答
结论
你测试得出的结论准确:你用到的默认When messages are available in a topic subscription触发器不支持启用了会话的Service Bus主题订阅触发。
原因是会话型Service Bus实体(队列/订阅)要求消费端必须先获取会话锁,才能读取该会话下的所有消息,默认触发器没有集成会话锁申请逻辑,因此检测不到会话型订阅中的消息,无法触发工作流。
可行解决方案
- 方案1:使用带会话参数的消息拉取动作配合定时触发
在有状态的标准逻辑应用工作流中,使用Recurrence定时器触发器做自定义轮询,搭配Receive messages from a topic subscription (peek-lock)动作的带会话参数版本,可指定固定会话ID或者接收任意可用会话的消息,完成会话型订阅消息的消费。 - 方案2:使用最新版Service Bus内置连接器的会话专属触发器
升级你的逻辑应用实例中Service Bus内置连接器到最新稳定版,即可找到专门的会话型触发器When a session message is available in a topic subscription (peek-lock),该触发器内置了会话锁申请逻辑,可以直接监听会话型订阅的消息并触发工作流。 - 方案3:通过Azure Functions做中间转发
如果对消息延迟要求较高,可额外部署一个Service Bus会话触发的Azure Function,该Function收到会话消息后主动调用你的逻辑应用工作流的HTTP触发端点,将消息内容传递给逻辑应用处理。
内容的提问来源于stack exchange,提问作者Jason Hyland
相关产品推荐
相关产品推荐

