我正在關注這個小教程,當對象上傳到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