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

将Lambda函数与Amazon DynamoDB一起使用

AWS Lambda将Lambda函数与Amazon DynamoDB结合使用 - 从基本概念开始,简单易学地学习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进行监控和故障排除,附加示例。

当数据添加到表中,更新或删除时,DynamoDB可以触发AWS Lambda.在本章中,我们将介绍一个简单的示例,它将向DynamoDB表和AWS Lambda添加项目,它将读取数据并发送添加了数据的邮件.

必需品

要使用Amazon DB和AWS Lambda,我们需要按照下面显示的步骤和减去;

  • 使用主键在DynamoDB中创建表

  • 创建一个有权使用DynamoDB和AWS Lambda的角色.

  • 在AWS Lambda中创建功能

  • AWS Lambda Trigger发送邮件

  • 在DynamoDB中添加数据

让我们详细讨论每一步.

示例

我们将在下面的示例中进行说明,该示例显示了DynamoDB与AWS Lambda之间的基本交互.此示例将帮助您了解以下操作 :

  • 在Dynamodb表中创建名为customer的表以及如何输入该表中的数据.

  • 输入数据后触发AWS Lambda函数并使用Amazon SES服务发送邮件.

解释示例流程的基本框图如下所示 :

Block Diagram

使用主键在DynamoDB中创建表

登录AWS控制台.转到AWS Services并选择DynamoDB,如下所示.选择DynamoDB.

Dynamodb

DynamoDB显示如下所示的选项&减去;

Dynamodb Option

现在,点击创建表格如图所示创建表.我们已将该表命名为 customer ,并将该表的主键设置为 cust_id .单击 创建 按钮将表格添加到dynamodb.

Create Dynamodb

创建的表如下所示 :

表详细信息

我们可以将项目添加到创建的表中,如下所示;

最近提醒

点击项目,然后点击创建项目按钮,如下所示&减去;

创建项目


创建Item2

创建具有使用DynamoDB和AWS Lambda的权限的角色

要创建角色,请转到AWS服务并单击IAM.

创建角色

让我们创建ap olicy仅用于之前创建的DynamoDB表 :

Create Policy Dynamo

现在,选择服务.注意我们选择的服务是 DynamoDB .对于操作,我们采取了所有 Dynamodb 操作,即访问列表,读取和写入.对于资源,我们将选择表资源类型操作.单击它时,您可以看到如下屏幕;

Dynamodb Action

现在,选择添加ARN ,如图所示.我们将从客户表获取 ARN 详细信息,如下所示创建 :

表创建

在此输入 arn 详细信息 :

指定Arn

单击添加按钮保存更改.完成后点击查看政策.输入政策名称,说明等,如下所示 :

添加按钮

单击创建策略进行保存.将策略添加到要创建的角色.从左侧选择角色并输入详细信息.

创建角色

观察添加的策略是 newpolicyfordynamdb,awslambdafullaccess,cloudwatchfullaccess amazonsesfullaccess .添加角色并在创建AWS Lambda函数时使用它.

在AWS Lambda中创建函数

因此,我们创建了名为

New Lambda

现在,让我们将DynamodDB触发器添加到创建的AWS Lambda.我们将使用的运行时是Node.js.

Designer Trigger

您可以在Dynamodb触发器中找到要为AWS Lambda&minus配置的以下详细信息;

Dynamo Trigger

现在,只需单击添加即可将触发器添加到AWS Lambda.

AWS Lambda触发器发送邮件

将数据插入到WARS Lambda中时,将触发AWS Lambda. event参数将插入dynamodb数据.这将从事件中读取数据并发送电子邮件.

发送电子邮件

要发送电子邮件,您需要按照下面给出的步骤进行操作;

步骤1

转到AWS服务并选择SES(简单电子邮件服务).验证我们需要发送电子邮件的电子邮件,如下所示;

验证电子邮件

第2步

点击验证新电子邮件地址按钮添加电子邮件地址.

验证新电子邮件

第3步

输入要验证的电子邮件地址它.电子邮件地址将从亚马逊接收和激活需要点击的邮件.激活完成后,将验证电子邮件ID,并可与AWS服务一起使用.

步骤4

读取数据的AWS Lambda代码来自该事件并发送电子邮件在下面和下面给出;

var aws = require('aws-sdk');var ses = new aws.SES({   region: 'us-east-1'});exports.handler = function(event, context, callback) {   console.log(event);   let tabledetails = JSON.parse(JSON.stringify(event.Records[0].dynamodb));   console.log(tabledetails.NewImage.address.S);   let customerid = tabledetails.NewImage.cust_id.S;   let name = tabledetails.NewImage.name.S;   let address = tabledetails.NewImage.address.S;   var eParams = {      Destination: {         ToAddresses: ["xxxxx@gmail.com"]      },      Message: {         Body: {            Text: {               Data: "The data added is as follows:\n CustomerId:"+customerid+"\n Name:"+name+"\nAddress:"+address            }         },         Subject: {            Data: "Data Inserted in Dynamodb table customer"         }      },      Source: "xxxxx@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");      }   });}

现在,将Lambda函数和数据保存在DynamoDB表中.

在DynamoDB中添加数据

使用以下序列在DynamoDB中添加数据.

步骤1

转到表客户在Dynamodb中创建.

Customer Created

第2步

点击创建项目.

创建项目发电机

步骤3

单击保存按钮并检查AWS Lambda中提供的电子邮件ID以查看如果邮件已由AWS Lambda发送.

Gmail