Puppeteer 16.1.1 不适用于 chrome-aws-lambda 10.1.0 版本

Mar*_*hav 6 node.js aws-lambda puppeteer chrome-aws-lambda

我正在使用 puppeteer 和 chrome-aws-lambda 在 AWS Lambda 中生成 pdf,直到最近它还可以与 nodejs 12.x、puppeteer v13.7.0 和 chrome-aws-lambda v10.1.0 配合使用。

\n

最近我们将 nodejs 更新到 16.x,将 puppeteer 更新到 16.1.1(收到 AWS 更新节点版本的通知。)

\n

现在此功能已停止工作,我遇到以下问题。

\n
error: Error: ENOENT: no such file or directory, mkdtemp 'undefined\\\\temp\\\\puppeteer_dev_chrome_profile-XXXXXX' {errno: -4058, code: 'ENOENT', syscall: 'mkdtemp', path: 'undefined\\\\temp\\\\puppeteer_dev_chrome_profile-XXXXXX', stack: 'Error: ENOENT: no such file or directory, mkd\xe2\x80\xa6ned\\\\temp\\\\puppeteer_dev_chrome_profile-XXXXXX'', \xe2\x80\xa6}\ncode:\n'ENOENT'\nerrno:\n-4058\npath:\n'undefined\\\\temp\\\\puppeteer_dev_chrome_profile-XXXXXX'\nsyscall:\n'mkdtemp'\nmessage:\n'ENOENT: no such file or directory, mkdtemp 'undefined\\\\temp\\\\\n
Run Code Online (Sandbox Code Playgroud)\n

小智 0

我在 Lambda Node v16 上运行的 10.1.0 版本的 puppeteer-core 和 chrome-aws-lambda 也遇到了同样的错误。它们在 Node v14 上工作得很好,但在 v16 和 v18 上却不行。所以我找到了一个替代方案,playwright-aws-lambda,它适用于 Node v16(已测试),不确定 Node v18。从chrome-aws-lambda迁移到playwright-aws-lambda 的代码库不需要太多更改。可以在此处找到 playwright-aws-lambda 的参考