在Amazon SNS中使用Lambda函数

蜗牛vps教程2023-08-25260

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 通过电话发送一条消息。

这是一个基本框图,解释了相同的-

在Amazon SNS中使用Lambda函数  第1张

在 SNS 中创建话题

您必须按照以下步骤在 SNS 中创建主题-

步骤 1

登录AWS控制台,进入亚马逊的SNS服务,如下图-

在Amazon SNS中使用Lambda函数  第2张

步骤 2

点击 简单通知服务并在其中 创建主题。

在Amazon SNS中使用Lambda函数  第3张

步骤 3

然后,您必须点击 创建新主题按钮,如图所示-

在Amazon SNS中使用Lambda函数  第4张

步骤 4

输入 主题名称和 显示名称,然后点击 创建主题。您应该在显示中看到主题名称,如下所示-

在Amazon SNS中使用Lambda函数  第5张

在 IAM 中为权限创建角色

要创建角色以使用 AWS Lambda 和 SNS 服务,我们需要登录到 AWS 控制台。然后,从Amazon services中选择IAM,点击左侧的role,如下图。

在Amazon SNS中使用Lambda函数  第6张

请注意,我们为 SNS、Lambda 和 CloudWatch 添加了策略。添加角色名称,点击创建角色按钮,完成角色创建过程。

在Amazon SNS中使用Lambda函数  第7张

创建 AWS Lambda 函数

在本节中,让我们了解如何使用 nodejs 作为运行时创建 AWS Lambda 函数。

为此,请登录 AWS 控制台并从 AWS 服务中选择 AWS Lambda。添加函数名称、角色详细信息等并创建 AWS Lambda 函数,如图所示。

在Amazon SNS中使用Lambda函数  第8张

添加 SNS 触发器

要添加 SNS 触发器,请输入 SNS 配置详细信息,如图所示-

在Amazon SNS中使用Lambda函数  第9张

然后,选择 SNS 主题 并 添加触发器到 AWS Lambda 函数,如图所示-

在Amazon SNS中使用Lambda函数  第10张

然后,添加下面给出的 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 触发-

发布到主题

首先选择您要发布的主题的名称。点击 发布到主题按钮-

在Amazon SNS中使用Lambda函数  第11张

输入 主题和 消息的详细信息,如下所示-

在Amazon SNS中使用Lambda函数  第12张

您还可以选择 JSON 消息格式以 JSON 样式发送。点击屏幕末尾的 发布消息按钮。

在 CloudWatch 服务中查看消息详细信息

登录AWS 控制台并打开CloudWatch 服务。单击左侧的日志并选择创建的 AWS Lambda 函数的日志。您可以找到带有如上所示创建的消息的日志的以下显示-

在Amazon SNS中使用Lambda函数  第13张

在 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);
   }	
}); 

 

 

现在进入主题查看云表消息和上面给出的电话号码。

在Amazon SNS中使用Lambda函数  第14张

点击 发布消息发布消息。您会在电话号码上看到一条消息,如下所示-

在Amazon SNS中使用Lambda函数  第15张

 

作为AWS顶级代理商,选择天.下.数.据的优势

1、专属客服协助注册AWS,或提供注册好的账号直接使用

2、支持收U等多币种支付代付,无额外服务费用

3、AWS多种产品类型,更高产品租赁权限

4、针对大客户,AWS专属折扣优惠

5、7x24小时专属客服,在线解答各种疑问

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo6@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram