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 通过电话发送一条消息。
这是一个基本框图,解释了相同的-
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);
   }	
});
现在进入主题查看云表消息和上面给出的电话号码。
输入主题
点击 发布消息发布消息。您会在电话号码上看到一条消息,如下所示-
发布消息
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4