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

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

Block Diagram Sns

在 SNS 中创建话题

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

步骤 1

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

亚马逊 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 函数,如图所示。

创建 Lambda

添加 SNS 触发器

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

添加 Sns

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

Sns 主题

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

本文地址:https://www.idcbest.com/idcnews/11008960.html



天下数据手机站 关于天下数据 联系我们 诚聘英才 付款方式 帮助中心 网站备案 解决方案 域名注册 网站地图

天下数据18年专注海外香港服务器、美国服务器、海外云主机、海外vps主机租用托管以及服务器解决方案-做天下最好的IDC服务商

《中华人民共和国增值电信业务经营许可证》 ISP证:粤ICP备07026347号

朗信天下发展有限公司(控股)深圳市朗玥科技有限公司(运营)联合版权

深圳总部:中国.深圳市南山区深圳国际创新谷6栋B座10层 香港总部:香港上環蘇杭街49-51號建安商業大廈7樓

7×24小时服务热线:4006388808香港服务电话:+852 67031102

本网站的域名注册业务代理北京新网数码信息技术有限公司的产品

工商网监图标