小编Dea*_*ean的帖子

使用无服务器和 chrome-aws-lambda 节点包在 AWS Lambda 上找不到 Chrome 二进制文件

我创建了一个简单的应用程序,它接受 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

5
推荐指数
1
解决办法
6677
查看次数