我正在关注这个小教程,当对象上传到S3存储桶时发送电子邮件。要和λ使用它我创建了一个.zip文件具有以下结构:AWS Lambda:无法导入模块'邮件':没有名为mail的模块
在mail.js /node_modules
将在mail.js有以下代码:
var MailComposer = require('mailcomposer').MailComposer,
mailcomposer = new MailComposer();
var ses =
new aws.SES({
accessKeyId: 'xxxxxxxxxxxx',
secretAccessKey: 'xxxxxxxxxxxx'});
s3.getObject(params, function(err, data) {
if (err) {
//error handling
} else {
mailcomposer.setMessageOption({
from: '[email protected]’,
to: '[email protected]',
subject: 'Test’,
body: 's3://' + bucket + '/' + key,
html: 's3://' + bucket + '/' + key +
'<br/><img src="cid:' + key + '" />'
});
var attachment = {
contents: data.Body,
contentType: 'image/png',
cid: key
};
mailcomposer.addAttachment(attachment);
mailcomposer.buildMessage(function(err, messageSource) {
if (err) {
// error handling
} else {
ses.sendRawEmail({RawMessage: {Data: messageSource}}, function(err, data) {
if(err) {
// error handling
} else {
context.done(null, data);
}
});
}
});
}
});
当我创建一个lambda函数我做到以下几点:
- 在选择蓝图菜单我选择 “S3-GET-对象的Python”
- 我CH OOSE我斗
- 至于事件中,我选择“放”
- 我点击“下一步”
- 我给一个名字lambda函数,然后选择“上传.zip文件”
- 我上传与zip文件mail.js和node_modules目录
- 作为处理程序我填写“mail.handler”
作为角色,我选择“S3执行角色”。该向导现在给出一个新的屏幕,我点击“查看策略文档”。我编辑的文件,这个文件现在是这样的:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "ses:SendEmail", "ses:SendRawEmail" ], "Resource": [ "*" ] } ] }
我点击“允许”,并返回到上一画面
那么,我选择下一个连接使lambda函数
当我现在上传一个PNG文件时,我的日志中出现以下错误。
START RequestId: a4401d96-c0ef-11e5-9ae4-8f38a4f750b6 Version: $LATEST
**Unable to import module 'mail': No module named mail**
END RequestId: a4401d96-c0ef-11e5-9ae4-8f38a4f750b6
REPORT RequestId: a4401d96-c0ef-11e5-9ae4-8f38a4f750b6 Duration: 0.35 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 9 MB
我不知道为什么,因为我敢肯定,在mail.js是我的.zip文件的根文件
我会说,它看起来像你混淆了Python和JavaScript在这里会有点 - 无论是在你的代码,并在你的描述你提到的Python,但你引用的代码是的JavaScript。 – jimjkelly
ow是的,对不起 – user5488652