python - Azure Python 函数应用程序中的 HTTP 请求

标签 python azure python-requests azure-functions

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

requests.get(baseURL, params=params) 

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

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

有什么想法吗?

最佳答案

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

enter image description here

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

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

关于python - Azure Python 函数应用程序中的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67199084/

相关文章:

sockets - Azure VM TCP 空闲超时

python - 使用 HTTPretty 模拟超时的 HTTP 请求

python - 在 flask 路由功能中使用请求模块

python - 如何导入带有虚线路径的模块?

Python:根据用户输入打印一个或多个文件(副本)

python - 如何在 Go 中实现 DllMain 入口点

Azure SWA : redirect to modified version of requested route?

java - Cucumber HTML 报告输出出现意外格式

python - 即使页面存在,为什么我在 python 请求中收到 404 错误?

python - 将 dict 转换为 String,然后分割字符串的特定部分