我正在尝试在AWS Lambda中使用fluent-ffmpeg,但无法正确设置它。在我的index.js顶部:
import ffmpeg from "fluent-ffmpeg";
但是它始终是不确定的。
ffmpeg === undefined
。
我正在使用Serverless,并将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层。
我可以加载其他软件包。只是流利的ffmpeg回来了undefined
。
在文档中,它提到将FFMPEG_PATH
和FFPROBE_PATH
作为环境变量进行传递。这些在图层上必要吗?
很高兴看到一个有效的配置。
答案 0 :(得分:0)
事实证明问题出在环境变量上。在将FFmpeg用作图层时,假设它位于名为ffmpeg
的目录中,请使用以下环境变量:
FFMPEG_PATH: /opt/ffmpeg/ffmpeg
FFPROBE_PATH: /opt/ffmpeg/ffprobe