我创建了一个简单的应用程序,它接受 URL 并将其转换为 PDF。它将生成的 PDF 存储在 S3 存储桶中并返回 PDF 的 URL。它使用 Chrome(无头运行)将 URL 转换为 PDF。我使用了无服务器框架、AWS Lambda 和 chrome-aws-lambda npm 包。当我使用无服务器在本地执行此设置时,一切都很好。我可以使用 postman 发出带有 URL 的请求,它会返回生成的 PDF 的 URL。当我将此设置部署到 AWS Lambda 时,它返回 502 内部服务器错误响应。当我查看应用程序的 AWS 日志时,我看到以下内容:
{
"errorType": "Error",
"errorMessage": "ENOENT: no such file or directory, open '//../bin/chromium.br'",
"code": "ENOENT",
"errno": -2,
"syscall": "open",
"path": "//../bin/chromium.br",
"stack": [
"Error: ENOENT: no such file or directory, open '//../bin/chromium.br'"
]
}
Run Code Online (Sandbox Code Playgroud)
这是应用程序的主要处理程序:
import AWS from 'aws-sdk'
import middy from 'middy'
import chromium from 'chrome-aws-lambda' …Run Code Online (Sandbox Code Playgroud) google-chrome amazon-web-services node.js aws-lambda serverless