
- 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 DynamoDB
當資料新增到表中、更新或刪除時,DynamoDB 可以觸發 AWS Lambda。在本章中,我們將研究一個簡單的示例,該示例將專案新增到 DynamoDB 表中,以及一個將讀取資料併發送包含新增資料的郵件的 AWS Lambda 函式。
先決條件
要使用 Amazon DB 和 AWS Lambda,我們需要按照以下步驟操作:
在 DynamoDB 中建立一個帶主鍵的表
建立一個具有使用 DynamoDB 和 AWS Lambda 許可權的角色。
在 AWS Lambda 中建立函式
AWS Lambda 觸發器傳送郵件
在 DynamoDB 中新增資料
讓我們詳細討論每個步驟。
示例
我們將對以下示例進行操作,該示例顯示了 DynamoDB 和 AWS Lambda 之間的基本互動。此示例將幫助您瞭解以下操作:
在 Dynamodb 表中建立名為 customer 的表以及如何在該表中輸入資料。
在輸入資料後觸發 AWS Lambda 函式,並使用 Amazon SES 服務傳送郵件。
解釋示例流程的基本框圖如下所示:

在 DynamoDB 中建立帶主鍵的表
登入到 AWS 控制檯。轉到 AWS 服務並選擇 DynamoDB,如下所示。選擇 DynamoDB。

DynamoDB 顯示如下所示的選項:

現在,單擊建立表以建立表,如所示。我們將表命名為customer,該表的primaryKey 為cust_id。單擊建立按鈕將表新增到 dynamodb。

建立的表如下所示:

我們可以如下所示向建立的表中新增專案:

單擊專案,然後單擊建立專案按鈕,如所示:


建立具有 DynamoDB 和 AWS Lambda 許可權的角色
要建立角色,請轉到 AWS 服務並單擊 IAM。

讓我們建立一個僅用於之前建立的 DynamoDB 表的策略:

現在,選擇一個服務。注意,我們選擇的服務是DynamoDB。對於操作,我們採用了所有Dynamodb操作,即訪問列表、讀取和寫入。對於資源,我們將選擇表資源型別操作。當您單擊它時,您會看到如下所示的螢幕:

現在,選擇表並向其新增 ARN,如所示。我們將從建立的customer 表中獲取ARN詳細資訊,如下所示:

在此處輸入arn詳細資訊:

單擊新增按鈕儲存更改。完成後,單擊檢視策略。輸入策略名稱、描述等,如下所示:

單擊建立策略以儲存它。將策略新增到要建立的角色中。從左側選擇角色並輸入詳細資訊。

注意,新增的策略為newpolicyfordynamdb、awslambdafullaccess、cloudwatchfullaccess和amazonsesfullaccess。新增角色,並在建立 AWS Lambda 函式時使用它。
在 AWS Lambda 中建立函式
因此,我們建立了一個名為newlambdafordynamodb的 Lambda 函式,如所示。

現在,讓我們將 DynamodDB 觸發器新增到建立的 AWS Lambda 中。我們將使用的執行時是 Node.js。

您可以在 Dynamodb 觸發器中找到以下需要為 AWS Lambda 配置的詳細資訊:

現在,只需單擊新增即可將觸發器新增到 AWS Lambda。
AWS Lambda 觸發器傳送郵件
當資料插入 AWS Lambda 時,AWS Lambda 將被觸發。事件引數將包含插入的 dynamodb 資料。這將從事件中讀取資料併發送電子郵件。
傳送電子郵件
要傳送電子郵件,您需要按照以下步驟操作:
步驟 1
轉到 AWS 服務並選擇 SES(簡單電子郵件服務)。驗證我們需要向其傳送電子郵件的電子郵件,如所示:

步驟 2
單擊驗證新電子郵件地址按鈕以新增電子郵件地址。

步驟 3
輸入要驗證的電子郵件地址。電子郵件地址將從 Amazon 接收啟用郵件,需要單擊該郵件。啟用完成後,電子郵件 ID 將被驗證,並且可以與 AWS 服務一起使用。
步驟 4
讀取事件資料併發送電子郵件的 AWS Lambda 程式碼如下所示:
var aws = require('aws-sdk'); var ses = new aws.SES({ region: 'us-east-1' }); exports.handler = function(event, context, callback) { console.log(event); let tabledetails = JSON.parse(JSON.stringify(event.Records[0].dynamodb)); console.log(tabledetails.NewImage.address.S); let customerid = tabledetails.NewImage.cust_id.S; let name = tabledetails.NewImage.name.S; let address = tabledetails.NewImage.address.S; var eParams = { Destination: { ToAddresses: ["xxxxx@gmail.com"] }, Message: { Body: { Text: { Data: "The data added is as follows:\n CustomerId:"+customerid+"\n Name:"+name+"\nAddress:"+address } }, Subject: { Data: "Data Inserted in Dynamodb table customer" } }, Source: "xxxxx@gmail.com" }; console.log('===SENDING EMAIL==='); 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"); } }); }
現在,儲存 Lambda 函式和 DynamoDB 表中的資料。
在 DynamoDB 中新增資料
使用以下順序在 DynamoDB 中新增資料。
步驟 1
轉到在 Dynamodb 中建立的customer表。

步驟 2
單擊建立專案。

步驟 3
單擊儲存按鈕並檢查 AWS Lambda 中提供的電子郵件 ID,以檢視 AWS Lambda 是否已傳送郵件。
