Aws JSON Lambda函数,'date-holiday'包

时间:2018-03-21 16:16:49

标签: json amazon-web-services date aws-lambda

我正在构建一个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);
                }

            });
        }
    }    
};

1 个答案:

答案 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--)) {

}