Lambda 函数预定事件设置

预定的事件应该根据规则集定期发生。计划事件用于在 cloudwatch 服务中定义的时间间隔后执行 Lambda 函数。它们最适合与 AWS Lambda 一起用于处理 cron 作业。本章将通过简单示例说明如何使用计划事件和 AWS Lambda 每 5 分钟发送一次邮件。

要求

将 Lambda 函数与预定事件一起使用的要求如下-

使用 AWS SES 验证电子邮件 ID创建角色以使用 AWS SES、Cloudwatch 和 AWS Lambda创建 Lambda 函数以发送电子邮件为来自 AWS CloudWatch 的计划事件添加规则

示例

我们将要考虑的示例将向 AWS Lambda 函数添​​加 CloudWatch 事件。 Cloudwatch 将根据附加的时间模式触发 AWS Lambda。例如,在下面的示例中,我们使用了 5 分钟作为触发器。这意味着每 5 分钟,AWS Lambda 将被触发一次,AWS Lambda 将在每次触发时发送邮件。

基本框图如下所示-

基本框图

使用 AWS SES 验证电子邮件 ID

登录 AWS 并进入 AWS SES 服务,如下所示-

客户参与

现在,点击 Simple Email 服务,如图所示-

简单电子邮件

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

电子邮件地址

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

验证电子邮件地址

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

单击邮件中提供的链接以验证电子邮件地址。验证后,它将显示电子邮件 ID,如下所示-

显示电子邮件

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

您还可以创建授予使用服务权限的角色。为此,请转到 IAM 并选择角色。添加所需的策略并创建角色。注意这里创建的角色是 带有 lambda 的事件。

带 Lambda 的事件

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

您必须按照以下步骤使用运行时作为 nodejs 创建 Lambda 函数。

Lambda 事件电子邮件

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

添加触发器 Lambda

向 CloudWatch Events Trigger 添加详细信息,如下所示-

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 aws = require("aws-sdk");
var ses = new aws.SES({
   region: "us-east-1"
});

 

 

为了从 nodejs 发送邮件,我们创建了 eParams 对象,该对象具有 示例邮件之类的详细信息,以邮件 id 和 带有消息的正文如下-

 

 

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 发送一次。

事件调度

作为AWS顶级代理商,选择天.下.数.据的优势

1、专属客服协助注册AWS,或提供注册好的账号直接使用

2、支持收U等多币种支付代付,无额外服务费用

3、AWS多种产品类型,更高产品租赁权限

4、针对大客户,AWS专属折扣优惠

5、7x24小时专属客服,在线解答各种疑问

详询电话40 0-63 8-88 08 官网:https://www.idCbest.com/2023/aws.asp

本文地址:https://www.idcbest.com/idcnews/11008959.html



天下数据手机站 关于天下数据 联系我们 诚聘英才 付款方式 帮助中心 网站备案 解决方案 域名注册 网站地图

天下数据18年专注海外香港服务器、美国服务器、海外云主机、海外vps主机租用托管以及服务器解决方案-做天下最好的IDC服务商

《中华人民共和国增值电信业务经营许可证》 ISP证:粤ICP备07026347号

朗信天下发展有限公司(控股)深圳市朗玥科技有限公司(运营)联合版权

深圳总部:中国.深圳市南山区深圳国际创新谷6栋B座10层 香港总部:香港上環蘇杭街49-51號建安商業大廈7樓

7×24小时服务热线:4006388808香港服务电话:+852 67031102

本网站的域名注册业务代理北京新网数码信息技术有限公司的产品

工商网监图标