在Amazon SNS中使用Lambda函数
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控制台,进入亚马逊的SNS服务,如下图-
步骤 2
点击 简单通知服务并在其中 创建主题。
步骤 3
然后,您必须点击 创建新主题按钮,如图所示-
步骤 4
输入 主题名称和 显示名称,然后点击 创建主题。您应该在显示中看到主题名称,如下所示-
在 IAM 中为权限创建角色
要创建角色以使用 AWS Lambda 和 SNS 服务,我们需要登录到 AWS 控制台。然后,从Amazon services中选择IAM,点击左侧的role,如下图。
请注意,我们为 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); } });
现在进入主题查看云表消息和上面给出的电话号码。
点击 发布消息发布消息。您会在电话号码上看到一条消息,如下所示-
作为AWS顶级代理商,选择天.下.数.据的优势
1、专属客服协助注册AWS,或提供注册好的账号直接使用
2、支持收U等多币种支付代付,无额外服务费用
3、AWS多种产品类型,更高产品租赁权限
4、针对大客户,AWS专属折扣优惠
5、7x24小时专属客服,在线解答各种疑问
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo6@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论