计划事件假定基于规则集定期发生.计划事件用于在cloudwatch服务中定义的间隔之后执行Lambda函数.它们最适合与AWS Lambda一起使用cron作业.本章将简单解释如何使用预定事件和AWS Lambda每5分钟发送一次邮件.
使用Lambda的要求计划事件的功能如下:&/;
使用AWS SES验证电子邮件ID
创建使用AWS SES,Cloudwatch和AWS Lambda的角色
创建Lambda函数以发送电子邮件
从AWS CloudWatch添加计划事件的规则
我们将考虑的示例将CloudWatch事件添加到AWS Lambda函数. Cloudwatch将根据附加的时间模式触发AWS Lambda.例如,在下面的示例中,我们使用5分钟作为触发器.这意味着每5分钟一次,AWS Lambda将被触发,AWS Lambda将在触发时发送邮件.
相同的基本框图如下所示 :
登录AWS并转到AWS SES服务,如下所示 :
现在,点击简单电子邮件服务,如下所示&减去;
点击左侧的电子邮件地址,如图所示 :
它显示一个按钮验证新的电子邮件地址.点击它.
输入电子邮件地址你要验证.单击验证此电子邮件地址按钮.您将通过该电子邮件ID从AWS收到邮件主题:Amazon Web Services - 美国东部地区的电子邮件地址验证请求(弗吉尼亚州北部)
单击邮件中给出的链接确认电子邮件地址.验证后,它将显示电子邮件ID,如下所示;
您还可以创建一个允许使用服务的角色.为此,请转到IAM并选择Role.添加所需的策略并创建角色.注意这里创建的角色是 lambda 的事件.
您必须按照步骤创建Lambda函数,使用runtime作为nodejs.
现在,向Lambda添加触发器,如图所示 :
向 CloudWatch事件触发器添加详细信息,如下所示 :
请注意,事件将在以后触发根据创建的规则触发器每5分钟.
发送电子邮件的Lambda代码在下面和下面给出;
var aws = require('aws-sdk'); var ses = new aws.SES({ region: 'us-east-1' }); exports.handler = function(event, context, callback) { var eParams = { Destination: { ToAddresses: ["xxxxxxxt12@gmail.com"] }, Message: { Body: { Text: { Data: "this mail comes from aws lambda event scheduling" } }, Subject: { Data: "Event scheduling from aws lambda" } }, Source: "coxxxxxx@gmail.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("EMAIL CODE END"); console.log('EMAIL: ', email); context.succeed(event); callback(null, "email is send"); } }); };
现在,我们需要AWS SES服务.您可以使用如下所示的代码添加此项;<
var email = ses.sendEmail(eParams, function(err, data) { if (err) console.log(err); else { console.log("===EMAIL SENT==="); console.log("EMAIL CODE END"); console.log('EMAIL: ', email); context.succeed(event); callback(null, "email is send"); } });
要从 nodejs 发送邮件,我们创建了 eParams 对象,其中包含
var eParams = { Destination: { ToAddresses: ["xxxxxxxx12@gmail.com"] }, Message: { Body: { Text: { Data: "this mail comes from aws lambda event scheduling" } }, Subject: { Data: "Event scheduling from aws lambda" } }, Source: "coxxxxxx@gmail.com" };
发送电子邮件的Lambda代码如下 :
var email = ses.sendEmail(eParams, function(err, data) { if (err) console.log(err); else { console.log("===EMAIL SENT==="); console.log("EMAIL CODE END"); console.log('EMAIL: ', email); context.succeed(event); callback(null, "email is send"); } });
现在,让我们保存此Lambda函数并检查邮件的电子邮件ID.下面显示的屏幕截图显示每隔5分钟就会从AWS Lambda发送邮件.