我需要使用sharp包调整Lambda函数中的图像大小,但是在我的Windows机器上执行“npm install”时会构建本机代码,这肯定不适用于Amazon Linux服务器Lambda托管的地方。
使用无服务器时,建议的解决方法是什么?
答案 0 :(得分:7)
如果要更加干净地与无服务器框架集成,可以将NPM软件包安装在安装到工作目录的Docker容器中:
对于Node v6.10:
$ docker run -v "$PWD":/var/task lambci/lambda:build-nodejs6.10 npm install
对于Node v4.3:
$ docker run -v "$PWD":/var/task lambci/lambda:build-nodejs4.3 npm install
这将安装package.json
中的所有软件包,并在您的目录中安装node_modules/
。
这是使用来自Lambci的Docker容器,它与实际的AWS Lambda环境非常接近。
答案 1 :(得分:1)
在我的Windows机器上为Lambda开发NodeJS图像处理应用程序时遇到了类似的问题。我设法使用Docker解决了这个问题。
由于AWS Lambda底层执行环境基于Amazon Linux映像,其中映像由AWS for Docker公开,因此您实际上可以pull the image并在Windows计算机中运行Amazon Linux容器。
所以在容器中,我将代码克隆到那里,运行npm install
,zip并将它们上传到S3存储桶,最后从S3创建/更新Lambda代码。