开发者社区 > 云原生 > Serverless > 正文

可以帮忙看下puppeteer请求为啥一直超时吗 ,在本地运行是正常的

可以帮忙看下puppeteer请求为啥一直超时吗 ,在本地运行是正常的

提问35.png

展开
收起
码字王 2023-04-07 17:23:37 1377 0
4 条回答
写回答
取消 提交回答
  • 本地执行多长时间,函数配置也调高点 。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-09 16:59:05
    赞同 展开评论 打赏
  • 根据报错信息显示,puppeteer的page.goto方法发起了一个网络请求,但是该请求的响应超时了:

    Navigation Timeout Exceeded: 30000ms exceeded 这种情况一般是由于网页加载时间过长导致的,可能是由于网页本身过于复杂,或者是网络问题导致的。在本地运行正常,可能是由于本地网络和阿里云的网络环境不同,导致访问速度出现差异。

    2023-04-09 08:48:03
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。
    • 在阿里云函数计算中使用puppeteer请求经常会遇到超时的问题,这是因为在函数计算环境中,没有桌面环境和图形渲染引擎,而puppeteer是一个基于Chromium/Chrome浏览器的Node.js库,需要图形渲染引擎的支持。为了解决这个问题,可以通过安装无头浏览器来提供图形渲染引擎。推荐使用Chromium,因为它是puppeteer的默认选项,同时也具有更好的兼容性和更好的性能。以下是安装Chromium的步骤:

    • 通过npm安装puppeteer和Chromium:

    npm install --save puppeteer chromium
    
    1. 设置Chromium的路径:
    const chromium = require('chromium');
    const executablePath = chromium.path;
    const browser = await puppeteer.launch({
        args: ['--no-sandbox', '--disable-setuid-sandbox'],
        executablePath,
    });
    
    1. 配置无头浏览器:
    const browser = await puppeteer.launch({
        headless: true,
        args: [
            '--no-sandbox',
            '--disable-setuid-sandbox',
            '--disable-gpu',
            '--single-process',
            '--no-zygote',
            '--no-first-run',
            '--ignore-certificate-errors',
            '--disable-dev-shm-usage',
            '--disable-infobars',
            '--user-data-dir=/tmp',
            '--window-size=1200,800',
        ],
    });
    
    2023-04-07 19:51:19
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    函数计算遇到函数执行超时情况的话,可以将函数的执行超时时间调大。具体操作,参见更新函数。 也可以检查函数逻辑,配置日志功能,查看是否调用其他接口返回超时,导致整个函数执行时间变长而出现超时。 最后检查是否进入耗时较多的逻辑分支,例如CPU密集型。

    2023-04-07 17:46:05
    赞同 展开评论 打赏
问答分类:
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载