如何在 AWS lambda 中导入 fluent-ffmpeg?
How to import fluent-ffmpeg in AWS lambda?
我正在尝试在 AWS Lambda 中使用 fluent-ffmpeg,但无法正确设置。在我的顶部 index.js:
import ffmpeg from "fluent-ffmpeg";
但它始终未定义。
ffmpeg === undefined
.
我正在使用无服务器并将 ffmpeg 作为一个层包含在内。
serverless.yaml
functions:
createGifFromVideo:
handler: src/services/createGifFromVideo/index.handler
layers:
- { Ref: FfmpegLambdaLayer }
events:
- sns: arn:aws:sns:us-east-1:${self:custom.accountId}:NewVideoPostContentTopic-${self:provider.stage}
layers:
ffmpeg:
path: src/layers
package.json
{
"name": "createGifFromVideo",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"dependencies": {
"fluent-ffmpeg": "^2.1.2"
}
}
据我所知,上传的 lambda 似乎构建正确。 Webpack 构建的文件合并了 fluent-ffmpeg,并链接到 ffmpeg 层。
我可以加载其他包。只是 fluent-ffmpeg 回来了 undefined
.
它在文档中提到将 FFMPEG_PATH
和 FFPROBE_PATH
作为环境变量传递。这些是否需要一层?
如果配置有效,我将不胜感激。
问题原来是环境变量的问题。当使用 FFmpeg 作为层时,假设它在一个名为 ffmpeg
的目录中,使用这些环境变量:
FFMPEG_PATH: /opt/ffmpeg/ffmpeg
FFPROBE_PATH: /opt/ffmpeg/ffprobe
我正在尝试在 AWS Lambda 中使用 fluent-ffmpeg,但无法正确设置。在我的顶部 index.js:
import ffmpeg from "fluent-ffmpeg";
但它始终未定义。
ffmpeg === undefined
.
我正在使用无服务器并将 ffmpeg 作为一个层包含在内。
serverless.yaml
functions:
createGifFromVideo:
handler: src/services/createGifFromVideo/index.handler
layers:
- { Ref: FfmpegLambdaLayer }
events:
- sns: arn:aws:sns:us-east-1:${self:custom.accountId}:NewVideoPostContentTopic-${self:provider.stage}
layers:
ffmpeg:
path: src/layers
package.json
{
"name": "createGifFromVideo",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"dependencies": {
"fluent-ffmpeg": "^2.1.2"
}
}
据我所知,上传的 lambda 似乎构建正确。 Webpack 构建的文件合并了 fluent-ffmpeg,并链接到 ffmpeg 层。
我可以加载其他包。只是 fluent-ffmpeg 回来了 undefined
.
它在文档中提到将 FFMPEG_PATH
和 FFPROBE_PATH
作为环境变量传递。这些是否需要一层?
如果配置有效,我将不胜感激。
问题原来是环境变量的问题。当使用 FFmpeg 作为层时,假设它在一个名为 ffmpeg
的目录中,使用这些环境变量:
FFMPEG_PATH: /opt/ffmpeg/ffmpeg
FFPROBE_PATH: /opt/ffmpeg/ffprobe