我正在构建一个AWS Lambda函数,如果办公室不在工作时间,则会将电话录音的S3位置通过电子邮件发送到邮箱。我可以让它发送电子邮件,如果有任何电话,但当我输入条件我倒下。我希望该功能仅在假日和办公时间外运行(圣诞节,银行假日.....)。我还没有尝试过周末,但我知道如何去做。我想使用'date-holidays'包,但我无法使用它。如果电子邮件不在9& 9之间,我可以收到要发送的电子邮件。 5但如果是圣诞节,我就不能让他们发送。
或者,如果有更简单的方法,请建议
var aws = require('aws-sdk');
var ses = new aws.SES({
region: 'us-west-2'
});
var time = new Date().getHours();
var td = new Date().getDate();
const s3 = new aws.S3({
apiVersion: '2006-03-01'
});
if (time > 17 || time < 9){
if (td == hd){
exports.handler = function(event, context, callback) {
console.log("Incoming: ", event);
const bucket = event.Records[0].s3.bucket.name;
const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
const now = new Date();
const news = `Event took place in https://s3.console.aws.amazon.com/s3/object/${bucket}/${key}`;
const params = {
Bucket: bucket,
Key: key,
};
var eParams = {
Destination: {
ToAddresses: ["***********.com"]
},
Message: {
Body: {
Text: {
Data: `${news}`
}
},
Subject: {
Data: `Voicemail notification for ${now}`
}
},
Source: "*************.com"
};
console.log('===SENDING EMAIL===');
var email = ses.sendEmail(eParams, function(err, data) {
if (err) console.log(err);
else {
console.log("===EMAIL SENT===");
// console.log(data);
console.log("EMAIL CODE END");
console.log('EMAIL: ', email);
context.succeed(event);
}
});
}
}
};
答案 0 :(得分:1)
我不确定您使用&#39; date-holidays&#39;有什么问题,您可以尝试使用Lambda和test(有一个data / holidays.json文件)上传node_modules文件夹< / p>
var Holidays = require(&#39; date-holidays&#39;) hd =新假期(&#39;美国&#39;,&#39; la&#39;,&#39; no&#39;)
if(hd.isHoliday(--now--)) {
}