- 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 SNS 结合使用
Amazon SNS 是一项用于推送通知的服务。在本章中,我们将借助示例解释 AWS Lambda 和 Amazon SNS 的工作原理,其中将执行以下操作 -
在 SNS 服务中创建主题并使用 AWS Lambda 将主题添加到 CloudWatch
通过给定的电话号码发送 SNS 短信。
必备条件
要在 SNS 服务中创建主题并使用 AWS Lambda 将主题添加到 CloudWatch,我们不需要执行以下步骤 -
- 在 SNS 中创建主题
- 在 IAM 中创建权限角色
- 创建 AWS Lambda 函数
- 发布到主题以激活触发器
- 在 CloudWatch 服务中查看消息详细信息。
要通过给定的电话号码发送 SNS 短信,我们需要执行以下操作 -
- 在 AWS Lambda 中添加代码以将消息发送到您的手机。
例子
在此示例中,我们将在 SNS 中创建一个主题。当在要发布的主题中输入详细信息时,将触发 AWS Lambda。主题详细信息记录在 CloudWatch 中,并由 AWS Lambda 通过电话发送消息。
这是一个基本框图,解释了相同的内容 -
在 SNS 中创建主题
您必须按照以下步骤在 SNS 中创建主题 -
步骤1
登录 AWS 控制台并转到 Amazon 中的 SNS 服务,如下所示 -
第2步
单击简单通知服务并在其中创建主题。
步骤3
然后,您必须单击“创建新主题”按钮,如下所示 -
步骤4
输入主题名称和显示名称,然后单击创建主题。您应该在显示中看到主题名称,如下所示 -
在 IAM 中创建权限角色
要创建一个角色来使用AWS Lambda和SNS服务,我们需要登录AWS控制台。然后,从 Amazon 服务中选择 IAM,然后单击左侧的角色,如下所示。
请注意,我们已添加针对 SNS、Lambda 和 CloudWatch 的策略。添加角色名称并单击创建角色按钮即可完成角色创建过程。
创建 AWS Lambda 函数
在本节中,让我们了解如何使用nodejs作为运行时创建AWS Lambda函数。
为此,请登录 AWS 控制台并从 AWS 服务中选择 AWS Lambda。添加函数名称、角色详细信息等并创建 AWS Lambda 函数,如图所示。
添加 SNS 触发器
要添加 SNS 触发器,请输入 SNS 配置详细信息,如下所示 -
然后,选择SNS 主题并将触发器添加到 AWS Lambda 函数,如下所示 -
然后,添加下面给出的 AWS lambda 代码 -
exports.handler = function(event, context, callback) { console.log("AWS lambda and SNS trigger "); console.log(event); const sns = event.Records[0].Sns.Message; console.log(sns) callback(null, sns); };
在上面的代码中,event.Records[0].Sns.Message给出了添加的消息详细信息。我们添加了控制台日志以便在 CloudWatch 中查看它们。现在,保存具有所需内存和时间分配的 Lambda 函数。
发布到主题以激活触发器
回想一下,我们已经在步骤 1 中在 SNS 中创建了主题。我们现在将在主题中发布并在 CloudWatch 中查看详细信息,该详细信息将由 AWS Lambda 触发 -
发布到主题
首先选择要发布的主题名称。单击“发布到主题”按钮 -
输入主题和消息详细信息,如下所示 -
您还可以选择JSON消息格式以JSON风格发送。单击屏幕末尾的发布消息按钮。
在 CloudWatch 服务中查看消息详细信息
登录AWS控制台并打开CloudWatch服务。单击左侧的日志,然后选择创建的 AWS Lambda 函数的日志。您可以找到以下显示的日志,其中包含如上所示创建的消息 -
在 AWS Lambda 中添加代码以将消息发送到您的手机
这里将使用 SNS 短信通过 AWS Lambda 在手机上发送消息。您可以使用以下代码来更新 AWS Lambda 代码,如下所示 -
const aws = require("aws-sdk"); const sns = new aws.SNS({ region:'us-east-1' }); exports.handler = function(event, context, callback) { console.log("AWS lambda and SNS trigger "); console.log(event); const snsmessage = event.Records[0].Sns.Message; console.log(snsmessage); sns.publish({ Message: snsmessage, PhoneNumber: '+911212121212' }, function (err, data) { if (err) { console.log(err); callback(err, null); } else { console.log(data); callback(null, data); } }); };
我们添加了 AWS SDK 和 SNS 服务来用于发送消息。来自 SNS 的活动消息将作为短信发送到给定的电话号码上。
例如,观察以下代码 -
sns.publish({ Message: snsmessage, PhoneNumber: '+911212121212' }, function (err, data) { if (err) { console.log(err); callback(err, null); } else { console.log(data); callback(null, data); } });
现在输入主题即可查看 cloudwatch 中的消息以及上面给出的电话号码。
单击发布消息以发布消息。您会在电话号码上看到一条消息,如下所示 -