开发手册 欢迎您!
软件开发者资料库

将Lambda函数与计划事件一起使用

AWS Lambda将Lambda函数与计划事件结合使用 - 从简单和简单的步骤学习AWS Lambda,从基本概念开始,包括概述,环境设置,简介,构建Lambda函数,NODEJS中的函数,Java,Python,Go,C#,配置Lambda函数,使用AWS控制台创建和部署,AWS CLI,无服务器框架,执行和调用,删除Lambda函数,使用Amazon API网关,在Amazon S3中使用Lambda函数,Amazon DynamoDB,计划事件,Amazon SNS,CloudTrail,亚马逊Kinesis,自定义用户应用程序,使用CloudFront的AWS Lambda @ Edge,使用Cloudwatch进行监控和故障排除,附加示例。

计划事件假定基于规则集定期发生.计划事件用于在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 SES验证电子邮件ID

登录AWS并转到AWS SES服务,如下所示 :

Customer Engagement

现在,点击简单电子邮件服务,如下所示&减去;

简单电子邮件

点击左侧的电子邮件地址,如图所示 :

电子邮件地址

它显示一个按钮验证新的电子邮件地址.点击它.

验证电子邮件地址

输入电子邮件地址你要验证.单击验证此电子邮件地址按钮.您将通过该电子邮件ID从AWS收到邮件主题:Amazon Web Services  - 美国东部地区的电子邮件地址验证请求(弗吉尼亚州北部)

单击邮件中给出的链接确认电子邮件地址.验证后,它将显示电子邮件ID,如下所示;

显示电子邮件

创建角色以使用AWS SES,Cloudwatch和AWS Lambda

您还可以创建一个允许使用服务的角色.为此,请转到IAM并选择Role.添加所需的策略并创建角色.注意这里创建的角色是 lambda 的事件.

Lambda事件

创建Lambda函数以发送电子邮件

您必须按照步骤创建Lambda函数,使用runtime作为nodejs.

Lambda Event Emails

现在,向Lambda添加触发器,如图所示 :

添加触发器Lambda

CloudWatch事件触发器添加详细信息,如下所示 :

Cloudwatch Events

请注意,事件将在以后触发根据创建的规则触发器每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发送邮件.

事件安排