我有一个带有计时器触发器的 Azure 函数应用。在应用程序内部,它使用 requests 库发出多个 HTTP 请求:
requests.get(baseURL, params=params)
当我在我的计算机上调试时,它运行没有错误。请求需要 2 到 30 秒才能返回。但是,当我在 Azure 中部署时,该函数将在发送一些请求后挂起,您必须重新启动它才能使其再次工作。它永远不会抛出异常,也永远不会失败。只是挂起。
Azure 成功完成的请求数在 2 到 6 之间。请求始终以相同的顺序发送,并且始终返回相同的数据。当它挂起时似乎没有任何明确的模式。有时是返回少量数据的请求,有时是返回更多数据的请求。
有什么想法吗?
最佳答案
针对此问题,请检查该功能是否及时显示日志。请点击“监控”查看日志,但不要在“日志”窗口中查看日志,因为日志有时不会显示在“日志”窗口中。顺便说一句,登录“Monitor”可能会延迟5分钟左右。
那么请检查您的函数是否超时。消费计划中的功能默认设置超时值5分钟。所以如果你在函数中请求了多个请求,并且每个请求都会花费几十秒,请set functionTimeout
与 00:10:00
在“host.json”中(消耗计划中functionTimeout
的最大值为10分钟)。
如果该功能仍然不起作用,请检查您的定时器触发函数中是否请求了其他 HttpTrigger 函数 url(并且 HttpTrigger 函数与您的定时器触发函数位于同一函数应用程序中)。如果是这样,可能会导致一些问题,你可以引用这个post我过去发现过类似的问题。要解决这个问题,只需创建另一个函数应用程序,将定时器触发函数和http触发函数分开即可。
关于python - Azure Python 函数应用程序中的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67199084/