
- 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 Kinesis
AWS Kinesis 服務用於捕獲/儲存來自網站點選、日誌、社交媒體 feed 的即時跟蹤資料。我們可以觸發 AWS Lambda 對這些日誌執行額外的處理。
先決條件
開始使用 Kinesis 和 AWS Lambda 的基本要求如下所示:
- 建立具有所需許可權的角色
- 在 Kinesis 中建立資料流
- 建立 AWS Lambda 函式。
- 向 AWS Lambda 新增程式碼
- 向 Kinesis 資料流新增資料
示例
讓我們做一個示例,我們將觸發 AWS Lambda 處理來自 Kinesis 的資料流併發送包含接收到的資料的郵件。
下面顯示了一個用於解釋該過程的簡單框圖:

建立具有所需許可權的角色
轉到 AWS 控制檯並建立角色。

在 Kinesis 中建立資料流
轉到 AWS 控制檯並在 Kinesis 中建立資料流。

如所示,有 4 個選項。在本例中,我們將使用“建立資料流”。

點選建立資料流。在下面給出的 Kinesis 流名稱中輸入名稱。

輸入資料流的分片數量。

分片的詳細資訊如下所示:

輸入名稱並點選底部的建立 Kinesis 流按鈕。

請注意,流需要一段時間才能變為活動狀態。
建立 AWS Lambda 函式
轉到 AWS 控制檯並點選 Lambda。建立 AWS Lambda 函式,如所示:

點選螢幕末尾的建立函式按鈕。將 Kinesis 作為觸發器新增到 AWS Lambda。

向 Kinesis 觸發器新增配置詳細資訊:

新增觸發器,然後向 AWS Lambda 新增程式碼。
向 AWS Lambda 新增程式碼
為此,我們將使用 nodejs 作為執行時。一旦 AWS Lambda 被 Kinesis 資料流觸發,我們將傳送郵件。
const aws = require("aws-sdk"); var ses = new aws.SES({ region: 'us-east-1' }); exports.handler = function(event, context, callback) { let payload = ""; event.Records.forEach(function(record) { // Kinesis data is base64 encoded so decode here payload = new Buffer(record.kinesis.data, 'base64').toString('ascii'); console.log('Decoded payload:', payload); }); var eParams = { Destination: { ToAddresses: ["xxxxxxx@gmail.com"] }, Message: { Body: { Text: { Data:payload } }, Subject: { Data: "Kinesis data stream" } }, Source: "cxxxxxxxxx@gmail.com" }; var email = ses.sendEmail(eParams, function(err, data) { if (err) console.log(err); else { console.log("===EMAIL SENT==="); console.log("EMAIL CODE END"); console.log('EMAIL: ', email); context.succeed(event); callback(null, "email is send"); } }); };
event 引數包含在 Kinesis 資料流中輸入的資料。一旦在 Kinesis 資料流中輸入資料,上述 aws lambda 程式碼將被啟用。
向 Kinesis 資料流新增資料
這裡我們將使用 AWS CLI 向 Kinesis 資料流新增資料,如下所示。為此,我們可以使用以下命令:
aws kinesis put-record --stream-name kinesisdemo --data "hello world" -- partition-key "789675"

然後,AWS Lambda 被啟用併發送郵件。



廣告