调用AWS Lambda函数时出错

时间:2019-08-12 12:55:00

标签: node.js amazon-web-services aws-lambda

我正在基于此AWS tutorial尝试将AWS S3与Lambda集成。将图像添加到S3时,它将触发Lambda函数,该函数将从S3获取图像,调整大小并将其再次上传回S3。

将功能复制到AWS Lambda Management之后,我确实收到以下消息。我不确定如何处理。我正在使用Node.js 8.10作为运行时。完整的代码可以在here中找到。文件名为index.js,Lambda处理程序为index.handler,exports.handler在Lambda函数中定义。

enter image description here

保存Lambda函数并通过将图像放入S3触发该函数之后,我的确在CloudWatch Logs中收到以下消息。

enter image description here

我对Node.js不熟悉,并停留在这里。任何解决方案将不胜感激。

更新:这是文件夹结构或树。

enter image description here

1 个答案:

答案 0 :(得分:1)

问题是您没有正确部署Lambda函数。此代码依赖于GraphicsMagick和Async库,您尚未将它们中的任何一个都上载到Lambda,因此您的require()调用失败。您应该重新阅读Tutorial,但是基本上您需要:

  • npm初始化
  • npm install gm async --save
  • zip -r function.zip。
  • aws lambda创建功能...(根据教程)

您部署的Lambda函数应如下所示(请注意,包含了从属NPM软件包的package.json文件以及node_modules子文件夹):

enter image description here