【问题标题】:HTTP Requests in Azure Python Function AppAzure Python 函数应用中的 HTTP 请求
【发布时间】:2021-04-22 09:51:21
【问题描述】:

我有一个带有计时器触发器的 Azure 函数应用。在应用程序内部,它使用 requests 库发出多个 HTTP 请求:

requests.get(baseURL, params=params) 

当我在我的计算机上调试时,它运行时没有错误。请求需要 2 到 30 秒才能返回。但是,当我在 Azure 中部署时,该功能会在发送一些请求后挂起,您必须重新启动它才能使其再次工作。它永远不会抛出异常,也永远不会失败。就挂了。

Azure 成功完成的请求数在 2 到 6 之间变化。请求始终以相同的顺序发送,并始终返回相同的数据。挂起时似乎没有任何明确的模式。有时是针对返回少量数据的请求,有时是针对返回更多数据的请求。

有什么想法吗??

【问题讨论】:

  • 查看函数应用的内存利用率和日志。如果 azure 功能性能出现问题,那么它会改变计划。如果您的 python 应用程序检查该资源

标签: python azure python-requests azure-functions


【解决方案1】:

对于这个问题,请检查功能是否及时显示日志。请点击“Monitor”查看日志,但不要在“Logs”窗口查看日志,因为日志有时不会显示在“Logs”窗口中。顺便说一句,“监控”的登录可能会延迟大约 5 分钟。

那么请检查你的函数是否超时。消费计划中的功能默认设置超时值为 5 分钟。所以如果你的请求在函数中有多个请求并且每个请求需要几十秒,请在“host.json”中setfunctionTimeout00:10:00functionTimeout的最大值为10分钟消费计划)。

如果该功能仍然不起作用,请检查您是否在定时器触发函数中请求了其他 HttpTrigger 函数 url(并且 HttpTrigger 函数与您的定时器触发函数在同一个函数应用中)。如果是这样,可能会导致一些问题,你可以参考这个post,我过去发现过类似的问题。要解决这个问题,只需创建另一个函数应用,将定时器触发功能和http触发功能分开即可。

【讨论】:

    猜你喜欢
    • 2019-05-12
    • 2016-10-14
    • 2017-01-21
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多