我目前正在aws lambda上运行一个函数。奇怪的是,每次成功执行后,如果再次运行它将导致超时。每次运行后,当我再次运行测试时,它就会成功。
当函数导致超时时,lambda似乎没有做任何事情。我在我的函数中放了一些console.log,但没有打印出来。
我的功能通常可以在30秒左右完成,所以超时60秒对我来说似乎很奇怪。
有谁知道会发生什么?
这是我的功能代码:
$.jQuery(
答案 0 :(得分:1)
使用puppeteer-lambda打开浏览器时存在已知问题,关闭它然后再打开它。
您所看到的是Lambda的第二次调用失败,因为它与第一次“成功”调用在同一容器中运行。
那为什么第三次试用呢?因为Lambda的第二次调用由于超时而被终止,可能伴随着导致错误的任何临时信息。
您可以尝试在呼叫处理程序之外实例化浏览器,并且永远不会关闭它,因此下次运行测试时可以使用它。我不知道是否会有任何时间出现问题。
答案 1 :(得分:0)
作为后续行动:
我发现成功的一种方式就像@K Mo建议的那样 - 永远不会关闭浏览器。但是,我的测试会执行登录到某些网站,并且重复使用相同的浏览器会导致行为不一致,因为第一次运行需要登录,而第二次运行则不需要登录。
我最终做的是使用puppeteer而不是puppeteer-lambda。我使用了来自https://github.com/Tchangang/puppeteer-lambda-launcher的插件来帮助我从s3存储桶配置和下载chrome。
感谢评论中的每个人的帮助!我的测试现在运行良好!