使用 Amazon DynamoDB 和 AWS Lambda的操作步骤

DynamoDB 可以在数据添加到表中、更新或删除时触发 AWS Lambda。在本章中,我们将使用一个简单的示例将项目添加到 DynamoDB 表和 AWS Lambda,后者将读取数据并发送添加了数据的邮件。

要求

要使用 Amazon DB 和 AWS Lambda,我们需要按照如下所示的步骤操作-

使用主键在 DynamoDB 中创建表创建一个有权使用 DynamoDB 和 AWS Lambda 的角色。在 AWS Lambda 中创建函数用于发送邮件的 AWS Lambda 触发器在 DynamoDB 中添加数据

让我们详细讨论这一步。

示例

我们将研究以下示例,该示例显示了 DynamoDB 和 AWS Lambda 之间的基本交互。这个例子将帮助您理解以下操作-

在 Dynamodb 表中创建一个名为 customer 的表以及如何在该表中输入数据。在输入数据并使用 Amazon SES 服务发送邮件后触发 AWS Lambda 函数。

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

框图

使用主键在 DynamoDB 中创建表

登录 AWS 控制台。转到 AWS 服务并选择 DynamoDB,如下所示。选择 DynamoDB。

Dynamodb

DynamoDB 显示的选项如下所示-

Dynamodb 选项

现在,单击 创建表以创建如图所示的表。我们将该表命名为 customer,该表的主键为 cust_id。单击 创建按钮将表添加到dynamodb。

创建 Dynamodb

创建的表如下图-

表详细信息

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

最近的警报

点击 项目,然后点击 创建项目按钮,如图所示-

创建项目

 

创建 Item2

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

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

创建角色

让我们创建一个仅用于之前创建的 DynamoDB 表的策略-

创建策略发电机

现在,选择一个 服务。观察我们选择的服务是 DynamoDB。对于 操作,我们已经采取了所有 Dynamodb 操作,即访问列表、读取和写入。对于 资源,我们将选择表资源类型操作。当您点击它时,您可以看到如下屏幕-

Dynamodb Action

现在,如图所示,选择 table 和 Add ARN。我们将从创建的 customer table 中获取 ARN 详细信息,如下所示-

表创建

在此处输入 arn 详细信息-

指定 Arn

点击 添加按钮保存更改。完成后 点击查看政策。输入策略名称、描述等,如下所示-

添加按钮

点击 创建策略以保存它。将策略添加到要创建的角色。从左侧选择 角色并输入详细信息。

创建角色

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

在 AWS Lambda 中创建函数

因此,我们创建了名为 newlambdafordynamodb 的 Lambda 函数,如图所示。

新 Lambda

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

设计器触发器

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

Dynamo 触发器

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

用于发送邮件的 AWS Lambda 触发器

AWS Lambda 将在数据插入 AWS Lambda 时触发。事件参数将插入 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。

客户创建

步骤 2

点击 创建项目。

创建项目发电机

步骤 3

单击 保存按钮并检查 AWS Lambda 中提供的电子邮件 ID,以查看邮件是否已由 AWS Lambda 发送。

Gmail

作为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/11008958.html



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

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

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

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

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

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

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

工商网监图标