- 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 Kinesis 结合使用
AWS Kinesis服务用于捕获/存储来自网站点击、日志、社交媒体源的实时跟踪数据。我们可以触发 AWS Lambda 对此日志执行额外处理。
必备条件
开始使用 Kinesis 和 AWS Lambda 的基本要求如下所示 -
- 创建具有所需权限的角色
- 在 Kinesis 中创建数据流
- 创建 AWS Lambda 函数。
- 将代码添加到 AWS Lambda
- 将数据添加到 Kinesis 数据流
例子
让我们来看一个示例,其中我们将触发 AWS Lambda 来处理来自 Kinesis 的数据流并发送包含收到的数据的邮件。
用于解释该过程的简单框图如下所示 -
创建具有所需权限的角色
转到AWS控制台并创建角色。
在 Kinesis 中创建数据流
转到AWS控制台并在kinesis中创建数据流。
如图所示,有 4 个选项。我们将在本例中创建数据流。
单击创建数据流。在下面给出的 Kinesis 流名称中输入名称。
输入数据流的分片数量。
分片的详细信息如下所示 -
输入名称并单击底部的创建 Kinesis 流按钮。
请注意,流激活需要一定的时间。
创建 AWS Lambda 函数
转到 AWS 控制台并单击 Lambda。创建 AWS Lambda 函数,如图所示 -
单击屏幕末尾的创建功能按钮。将 Kinesis 添加为 AWS Lambda 的触发器。
将配置详细信息添加到 Kinesis 触发器 -
添加触发器,然后将代码添加到 AWS Lambda。
向 AWS Lambda 添加代码
为此,我们将使用nodejs作为运行时。一旦使用 kinesis 数据流触发 AWS Lambda,我们就会发送邮件。
const aws = require("aws-sdk"); var ses = new aws.SES({ region: 'us-east-1' }); exports.handler = function(event, context, callback) { let payload = ""; event.Records.forEach(function(record) { // Kinesis data is base64 encoded so decode here payload = new Buffer(record.kinesis.data, 'base64').toString('ascii'); console.log('Decoded payload:', payload); }); var eParams = { Destination: { ToAddresses: ["xxxxxxx@gmail.com"] }, Message: { Body: { Text: { Data:payload } }, Subject: { Data: "Kinesis data stream" } }, Source: "cxxxxxxxxx@gmail.com" }; 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"); } }); };
事件参数包含在 kinesis 数据流中输入的数据。一旦数据输入到 kinesis 数据流中,上述 aws lambda 代码就会被激活。
将数据添加到 Kinesis Data Stream
这里我们将使用 AWS CLI 添加 data kinesis 数据流,如下所示。为此,我们可以使用以下命令 -
aws kinesis put-record --stream-name kinesisdemo --data "hello world" -- partition-key "789675"
然后,AWS Lambda 被激活并发送邮件。