使用Azure Logic App中的Http Webhook操作处理长时间运行的WebApi

时间:2017-08-24 12:09:11

标签: timeout azure-logic-apps

使用Azure Web-API运行Azure Logic App的示例超过2分钟(在120秒内HTTP请求超时)
由于azure函数的时间限制为5分钟到最多10分钟,我创建了以下Azure Web-API(现在只是增加了延迟)

    [HttpPost]
    [Route("api/Values/subscribe")]
    public async Task<HttpResponseMessage> SubscribeAsync([FromBody]SubscriptionData subscriptionData)
    {
        TimeSpan ts = TimeSpan.FromMinutes(3);
        await Task.Delay(ts);
        return Request.CreateResponse(HttpStatusCode.OK);
    }

    [HttpPost]
    [Route("api/Values/unsubscribe")]
    public HttpResponseMessage Unsubscribe([FromBody]SubscriptionData subscriptionData)
    {
        return Request.CreateResponse(HttpStatusCode.OK);
    }

在我的Logic App HttpWebhook中添加了以下HTTP Web挂钩操作,但这会返回 BadRequest。 Http请求失败:已达到超时。
也尝试使用Web API同步,但这样做是为了工作。

1 个答案:

答案 0 :(得分:0)

如Szymon所述,您需要实现逻辑应用程序的Webhook订阅和取消订阅模式,如下图所示。

Webbhook Subscribe and Unsubscribe pattern of Logic Apps

此实施的详细说明可在此处找到:https://www.mexia.com.au/correlation-identifier-pattern-on-logic-apps/

HTH