
- AWS Lambda 教程
- AWS Lambda - 首頁
- AWS Lambda - 概述
- AWS Lambda - 環境設定
- AWS Lambda - 簡介
- 構建 Lambda 函式
- NODEJS 中的函式
- Java 中的函式
- Python 中的函式
- Go 中的函式
- C# 中的函式
- 配置 Lambda 函式
- 使用 AWS 控制檯建立和部署
- 使用 AWS CLI 建立和部署
- 使用 Serverless Framework 建立和部署
- AWS 執行和呼叫 Lambda 函式
- 刪除 Lambda 函式
- 使用 Amazon API Gateway
- Lambda 函式與 Amazon S3
- Lambda 函式與 Amazon DynamoDB
- Lambda 函式與計劃事件
- Lambda 函式與 Amazon SNS
- Lambda 函式與 CloudTrail
- Lambda 函式與 Amazon Kinesis
- Lambda 函式與自定義使用者應用程式
- AWS Lambda@Edge 與 CloudFront
- 使用 Cloudwatch 監控和故障排除
- AWS Lambda - 其他示例
- AWS Lambda 有用資源
- AWS Lambda - 快速指南
- AWS Lambda - 有用資源
- 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 會向手機發送一條訊息。
這是一個基本的框圖,解釋了相同的內容:

在 SNS 中建立主題
您需要按照以下步驟在 SNS 中建立主題:
步驟 1
登入 AWS 控制檯,然後轉到 Amazon 中的 SNS 服務,如下所示:

步驟 2
單擊簡單通知服務,然後單擊其中的建立主題。

步驟 3
然後,您需要單擊建立新主題按鈕,如下所示:

步驟 4
輸入主題名稱和顯示名稱,然後單擊建立主題。您應該在顯示屏上看到主題名稱,如下所示:

在 IAM 中建立用於許可權的角色
要建立用於與 AWS Lambda 和 SNS 服務一起使用的角色,我們需要登入 AWS 控制檯。然後,從 Amazon 服務中選擇 IAM,並從左側單擊角色,如下所示。

觀察到我們已為 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); } });
現在輸入主題以在 cloudwatch 和上面提供的電話號碼中檢視訊息。

單擊釋出訊息以釋出訊息。您將在提供的電話號碼上看到一條訊息,如下所示:
