如何在 Azure 逻辑应用中执行审批步骤,调用我自己的 API,类似于 office365 审批连接器?



我想使用 Azure 逻辑应用生成一个包含"审批"步骤的小型工作流,该步骤只是我自己系统中的 API 调用,类似于 Office 365 审批连接器。

但是,根据我在 Internet 上发现的情况,在 Azure 逻辑应用中执行长时间运行的任务的唯一方法是使用 Webhook。

在 Webhooks 中,我无法为我创建的参数"布尔批准"设置值......那么,我稍后如何在条件步骤中检查它?

另一种可能的解决方案可能是使用 Swagger 来设置一个"布尔批准"参数。但是,它不支持长时间运行的操作!

对我来说可能的解决方案是什么?

正如你提到的,这样做的方法是使用 Webhook 操作,为此你需要实现这里描述的订阅/取消订阅模式。webhook 操作将允许您从您订阅的基于实例的 webhook 获取任何有效负载(通过 HTTP 帖子(。

以下几点是这篇博文的摘要: https://www.mexia.com.au/correlation-identifier-pattern-on-logic-apps/

要实现订阅/取消订阅 Webhook 模式,您需要考虑:

  • 订阅存储:用于存储唯一消息 ID 和 Webhook 操作提供的基于实例的回调 URL。
  • 订阅并启动请求处理 API:这是一个 RESTful API,负责启动请求的处理并存储 订阅。
  • 取消订阅和停止请求处理 API:这是另一个 RESTful API,只有在主工作流上的 webhook 操作超时时才会调用。此 API 负责停止处理并从商店中删除订阅。
  • 基于实例的Webhook:此 Webhook 将由您自己的自定义审批事件触发。触发后,您的 webhook 负责从存储中获取基于实例的回调 URL 并调用它。回调主工作流实例后,将删除订阅。这是负责将所需的有效负载发送到逻辑应用中等待的 Webhook 操作的 Webhook

后续操作将能够使用该响应正文,因此您可以实现您的条件等。

您可以按照上面提到的博客文章查看详细示例并获取有关如何实现它的更多详细信息。

让你的api返回HTTP代码200,如果响应"ok",则返回400。这样,你可以强制逻辑应用按照你需要的方式运行。

最新更新