- AWS Lambda 教程
- AWS Lambda - 主页
- AWS Lambda - 概述
- AWS Lambda - 环境设置
- AWS Lambda - 简介
- 构建 Lambda 函数
- NODEJS 中的函数
- Java 中的函数
- Python 中的函数
- Go 中的函数
- C# 中的函数
- 配置 Lambda 函数
- 使用 AWS 控制台创建和部署
- 使用 AWS CLI 创建和部署
- 使用无服务器框架创建和部署
- AWS 执行和调用 Lambda 函数
- 删除 Lambda 函数
- 使用 Amazon API Gateway
- 使用 Amazon S3 的 Lambda 函数
- 使用 Amazon DynamoDB 的 Lambda 函数
- 具有预定事件的 Lambda 函数
- 带有 Amazon SNS 的 Lambda 函数
- 带有 CloudTrail 的 Lambda 函数
- 使用 Amazon Kinesis 的 Lambda 函数
- 具有自定义用户应用程序的 Lambda 函数
- AWS Lambda@Edge 与 CloudFront
- 使用 Cloudwatch 进行监控和故障排除
- AWS Lambda - 其他示例
- AWS Lambda 有用资源
- AWS Lambda - 快速指南
- AWS Lambda - 有用的资源
- AWS Lambda - 讨论
将 Lambda 函数与 Amazon DynamoDB 结合使用
当数据添加到表中、更新或删除时,DynamoDB 可以触发 AWS Lambda。在本章中,我们将研究一个简单的示例,该示例将向 DynamoDB 表和 AWS Lambda 添加项目,AWS Lambda 将读取数据并发送包含添加数据的邮件。
必备条件
要使用 Amazon DB 和 AWS Lambda,我们需要按照以下步骤操作 -
在 DynamoDB 中创建带有主键的表
创建一个有权使用 DynamoDB 和 AWS Lambda 的角色。
在 AWS Lambda 中创建函数
AWS Lambda 触发器发送邮件
在 DynamoDB 中添加数据
让我们详细讨论每个步骤。
例子
我们将研究以下示例,该示例显示 DynamoDB 和 AWS Lambda 之间的基本交互。这个例子将帮助您理解以下操作 -
在 Dynamodb 表中创建名为 customer 的表以及如何在该表中输入数据。
输入数据后触发 AWS Lambda 函数并使用 Amazon SES 服务发送邮件。
解释示例流程的基本框图如下所示 -
在 DynamoDB 中使用主键创建表
登录AWS控制台。转到 AWS 服务并选择 DynamoDB,如下所示。选择 DynamoDB。
DynamoDB 显示的选项如下所示 -
现在,单击“创建表”以创建表,如图所示。我们将该表命名为customer,该表的主键为cust_id。单击“创建”按钮将表添加到 dynamodb。
创建的表如下所示 -
我们可以将项目添加到创建的表中,如下所示 -
单击项目,然后单击创建项目按钮,如图所示 -
创建具有使用 DynamoDB 和 AWS Lambda 权限的角色
要创建角色,请转到 AWS 服务并单击 IAM。
让我们创建一个仅用于之前创建的 DynamoDB 表的策略 -
现在,选择一个服务。请注意,我们选择的服务是DynamoDB。对于操作,我们采取了所有Dynamodb操作,即访问列表、读取和写入。对于资源,我们将选择表资源类型操作。当您单击它时,您可以看到如下屏幕 -
现在,选择表并向其中添加 ARN,如图所示。我们将从创建的客户表中获取ARN详细信息,如下所示 -
在此处输入arn详细信息 -
单击“添加”按钮保存更改。完成后,单击查看策略。输入政策名称、描述等,如下所示 -
单击创建策略以保存它。将策略添加到要创建的角色中。从左侧选择角色并输入详细信息。
请注意,添加的策略是newpolicyfordynamdb、awslambdafullaccess、cloudwatchfullaccess和amazonsesfullaccess。添加角色并将在创建 AWS Lambda 函数时使用它。
在 AWS Lambda 中创建函数
因此,我们创建了名为newlambdafordynmodb的 Lambda 函数,如图所示。
现在,让我们将 DynamodDB 触发器添加到创建的 AWS Lambda。我们将使用的运行时是 Node.js。
您可以在 Dynamodb 触发器中找到要为 AWS Lambda 配置的以下详细信息 -
现在,只需单击添加即可将触发器添加到 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 发送。