
- 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
- 帶有 Amazon S3 的 Lambda 函式
- 帶有 Amazon DynamoDB 的 Lambda 函式
- 帶有計劃事件的 Lambda 函式
- 帶有 Amazon SNS 的 Lambda 函式
- 帶有 CloudTrail 的 Lambda 函式
- 帶有 Amazon Kinesis 的 Lambda 函式
- 帶有自定義使用者應用程式的 Lambda 函式
- AWS Lambda@Edge 與 CloudFront
- 使用 Cloudwatch 進行監控和故障排除
- AWS Lambda - 附加示例
- AWS Lambda 有用資源
- AWS Lambda - 快速指南
- AWS Lambda - 有用資源
- AWS Lambda - 討論
使用 AWS 控制檯建立和部署
我們可以在 AWS 控制檯中建立 Lambda 函式並進行測試。本章將詳細討論這一點。為此,您需要按照此處提供的步驟操作並觀察相應的螢幕截圖:
步驟 1
登入 AWS 控制檯 https://aws.amazon.com/console/。現在,您將被重定向到顯示 AWS 服務的螢幕。

步驟 2
現在,單擊上面突出顯示的Lambda 服務。這將重定向到建立函式,如下所示:

步驟 3
現在,單擊建立函式並輸入函式的詳細資訊。然後您將看到如下所示的螢幕:

步驟 4
您可以透過選擇您選擇的語言來編寫程式碼。如果選擇的選項是內聯編輯程式碼,則必須在編輯器中編寫程式碼。其他可用選項如下:

步驟 5
完成後,您需要儲存更改,右上角有一個按鈕,如下所示:

步驟 6
現在,單擊測試按鈕。這將提供 Lambda 函式執行的所有詳細資訊,如下所示:

步驟 7
index.js 的程式碼如下:
exports.handler = (event, context, callback) => { // TODO implement callback(null, 'Lambda test'); };
這將呼叫回撥函式,結果可能是錯誤或成功。成功時,您將看到Lambda 測試訊息;如果出錯,它將傳遞 null。
步驟 8
Lambda 函式的角色詳細資訊是配置的一部分,如下所示:

步驟 9
現在,您可以根據需要更新角色並儲存 Lambda 函式。然後,將顯示 Lambda 函式的記憶體和超時詳細資訊,如下所示:

步驟 10
現在,我們需要向 Lambda 函式新增觸發器,以便在事件發生時執行它。觸發器詳細資訊顯示在 AWS Lambda 函式螢幕的開頭,如下所示:

從中,您可以選擇希望 Lambda 函式觸發的觸發器。當您選擇觸發器時,必須新增觸發器的配置詳細資訊。
例如,對於 S3 上的觸發器,要新增的配置詳細資訊如下:

步驟 11
現在,選擇您想要在其上觸發觸發器的儲存桶。事件型別具有以下詳細資訊:

步驟 12
對於觸發器,您還可以提及字首型別檔案或檔案模式,Lambda 必須被觸發。詳細資訊如下所示:

步驟 13
現在,填寫觸發器的所需詳細資訊並單擊新增按鈕。儲存 Lambda 函式以新增觸發器。儲存函式會部署詳細資訊,從現在開始,只要將檔案新增到 S3 儲存桶,Lambda 就會被觸發。
觀察以下螢幕截圖,其中顯示了新增到 AWS Lambda 的 S3 觸發器:

步驟 14
現在,讓我們使用 S3 示例事件來測試 Lambda 函式。此處的程式碼如下所示:
Amazon S3 Put 示例事件
{ "Records": [{ "eventVersion": "2.0", "eventTime": "1970-01-01T00:00:00.000Z", "requestParameters": { "ExampleIPAddress": "127.0.0.1" }, "s3": { "configurationId": "testConfigRule", "object": { "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901", "key": "HappyFace.jpg", "size": 1024 }, "bucket": { "arn": bucketarn, "name": "Examplebucket", "ownerIdentity": { "principalId": "Example" } }, "s3SchemaVersion": "1.0" }, "responseElements": { "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH", "x-amz-request-id": "Example123456789" }, "awsRegion": "us-east-1", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "Example" }, "eventSource": "aws:s3" }] }
您需要使用以下命令來獲取從 S3 put 事件上傳的檔案的詳細資訊:
event.Records[0].s3.object.key //will display the name of the file
您需要使用以下命令來獲取儲存桶名稱:
event.Records[0].s3.bucket.name //will give the name of the bucket.
您需要使用以下命令來獲取 EventName:
event.Records[0].eventName // will display the event name
步驟 15
現在,讓我們更新 AWS Lambda 程式碼以列印 S3 詳細資訊,如下所示:
exports.lambdahandler = (event, context, callback) => { callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key ); };
步驟 16
儲存更改。單擊測試並輸入 S3 示例事件:

步驟 17
現在單擊測試,您將看到如下所示的輸出:

步驟 18
要使用 S3 AWS 服務測試 S3 上的觸發器,請將檔案上傳到 S3 儲存桶:test bucket trigger。更新與 Lambda 一起使用的角色以獲取 S3 和 SES 策略(用於傳送郵件)以進行許可權設定。這將更新 AWS Lambda 程式碼以傳送郵件以檢視觸發器是否正常工作:
更新後的 AWS Lambda 程式碼如下所示:
var aws = require('aws-sdk'); var ses = new aws.SES({ region: 'us-east-1' }); exports.lambdahandler = function(event, context, callback) { var eParams = { Destination: { ToAddresses: ["coxxxxxxx@gmail.com"] }, Message: { Body: { Text: { Data: "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key } }, Subject: { Data: "S3 and AWS Lambda" } }, Example: "coxxxxxx@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"); } }); };
相應的螢幕截圖如下所示:

步驟 19
現在,上傳檔案並檢查 AWS Lambda 程式碼中提供的郵件 ID:
