You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda中Playwright page.goto()持续报错排查求助

问题分析与排查建议

环境信息

  • Lambda 1:
    • playwright-aws-lambda v0.9.0
    • Node.js 16
  • Lambda 2:
    • playwright-aws-lambda v0.10.0
    • Node.js 18
  • 部署环境:AWS Lambda
  • CI/CD工具:GitLab

报错详情

  1. 页面访问阶段报错:

    Error: page.goto: Target page, context or browser has been closed

  2. 处理程序执行阶段报错:

    TypeError: Cannot read properties of undefined (reading 'close')
    at d. (/var/task/src/handler.js:1:17387)
    at Generator.next ()
    at a (/var/task/src/handler.js:1:15631)

关键现象

仅4月18日及之后通过GitLab流水线构建部署的Lambda实例出现问题,同代码、同依赖版本的旧部署包运行完全正常。


可能的触发原因

  1. AWS Lambda运行时底层更新
    AWS在4月中旬可能对Node.js 16/18的Lambda运行时进行了底层调整,比如资源回收策略、进程生命周期管理或文件系统权限变更。playwright-aws-lambda高度依赖Lambda的运行时环境,这类变化可能导致浏览器实例被提前回收,触发page.goto的关闭错误;后续代码尝试调用已销毁实例的close方法,就会出现读取undefined属性的报错。

  2. GitLab CI构建环境隐性变更
    即使锁定了项目依赖版本,GitLab Runner的基础镜像可能在4月18日后更新,导致构建过程中生成的部署包存在隐性差异——比如系统依赖库版本、Node.js编译字节码的细微变化。这类差异可能破坏playwright二进制文件与Lambda运行时的兼容性,导致浏览器启动后异常退出。

  3. 间接依赖的隐性更新
    虽然你锁定了playwright-aws-lambda的版本,但它的间接依赖(如playwright-core、AWS SDK相关包)可能未被严格锁定,npm/yarn在构建时拉取了新的次要版本。这些新版本可能与Lambda的新运行时不兼容,引发浏览器上下文异常关闭。

排查与解决建议

  • 对比新旧部署包的文件哈希值,确认二进制文件、编译产物是否存在差异;
  • 使用AWS官方提供的Lambda运行时Docker镜像(如public.ecr.aws/sam/build-nodejs18.x)在本地模拟构建与运行,复现问题;
  • 将GitLab Runner的基础镜像回退到4月18日前的版本,重新构建部署,验证问题是否消失;
  • 查看Lambda的完整运行日志,重点排查browserType.launch阶段的底层报错,定位实例提前关闭的具体原因;
  • 尝试升级playwright-aws-lambda到对应Node.js版本的最新兼容版,确保依赖与运行时匹配。

内容的提问来源于stack exchange,提问作者user17991685

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:30:18