我们编写了一个 Print PDF lambda 函数,使用 puppeteer 从 SQS 消息中发送给它的 HTML 内容生成 PDF 文件。它在 aws 中部署为 lambda。该功能还允许上传图片。然后将 pdf 存储在 s3 存储桶中。我们正在使用 chrome-aws-lambda 和 puppeteer。 ([电子邮件受保护] [电子邮件受保护])。当我们尝试上传图片时,我们收到以下信息:
error: Error initializing NSS with a persistent database NSS error code: -8023.
然后是
ERROR Invoke Error {
"errorType": "Error",
"errorMessage": "Navigation failed because browser has disconnected!",
"stack": [
"Error: Navigation failed because browser has disconnected!",
" at /var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/LifecycleWatcher.js:51:147",
" at /var/task/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.js:51:62",
" at Array.map (<anonymous>)",
" at Object.emit (/var/task/node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.js:51:43)",
" at CDPSession.emit (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.js:72:22)",
" at CDPSession._onClosed (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:247:14)",
" at Connection._onClose (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:128:21)",
" at WebSocket.<anonymous> (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/node/NodeWebSocketTransport.js:17:30)",
" at WebSocket.onClose (/var/task/node_modules/ws/lib/event-target.js:124:16)",
" at WebSocket.emit (events.js:400:28)"
]
}
然后在 s3 存储桶中创建一个带有“访问被拒绝”的 pdf 文件。请建议并推荐解决方案。
AWS 以静默方式更新了 Lambda 的 Node 版本。目前是 v18.28.
您可以更新包和节点版本,也可以禁用自动更新运行时版本并锁定它。我正在使用 v18.18,它又可以正常工作了。