我将此代码放在名为awslambda.js
的文件中console.log('Loading function');
exports.bullion = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
var message = event.Records[0].Sns.Message;
console.log('From SNS:', message);
context.succeed(message);
};
我把它拉上它看起来像这样:
bullion $ unzip -l target/bullion-dev-for-lambda.zip
Archive: target/bullion-dev-for-lambda.zip
Length Date Time Name
-------- ---- ---- ----
268 02-05-16 10:39 awslambda.js
-------- -------
268 1 file
我将其上传到AWS Lambda并将Handler配置为
awslambda.bullion
我测试了这个功能,我得到了
{
"errorMessage": "Handler 'bullion' missing on module 'awslambda'"
}
如果我在Lambda函数中输入相同的代码,它就可以了! zip文件上传的特殊情况是什么?
答案 0 :(得分:1)
答案似乎是' awslambda'已经是Lambda环境中的一个模块。当我将文件从awslambda.js更改为bullionAwsLambda.js,并相应地更改Handler时,它可以正常工作。
偷偷摸摸的一个让我失去了很多时间的人!
答案 1 :(得分:0)
最常见的错误是你压缩文件夹,而不是这个:
zip contains:
- awslambda.js
- otherFiles.js
你现在得到这个:
zip contains:
- foldername/
- awslambda.js
- otherFiles.js
同样,文件夹在zip(包含代码)中,而不是文件夹的内容。文件夹本身不应该压缩,因此awslambda.js文件位于zip文件的根目录中。
要解决此问题:请勿压缩文件夹(右键单击 - >压缩),但打开文件夹,选择所有文件,然后右键单击 - >压缩。