一推网

当前位置: 首页 > 知识问答 > 在Amazon SNS中使用Lambda函数

知识问答

在Amazon SNS中使用Lambda函数

2025-09-21 08:14:52 来源:互联网转载

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小时专属客服,在线解答各种疑问

详询电话40 0-63 8-88 08官网:https://www.idCbest.com/2023/aws.asp

上一篇:成都网站建设:让您的网站更具品牌形象

下一篇:405错误是什么?405错误的原因和解决方法