使用 AWS 控制檯建立和部署



我們可以在 AWS 控制檯中建立 Lambda 函式並進行測試。本章將詳細討論這一點。為此,您需要按照此處提供的步驟操作並觀察相應的螢幕截圖:

步驟 1

登入 AWS 控制檯 https://aws.amazon.com/console/。現在,您將被重定向到顯示 AWS 服務的螢幕。

AWS Services

步驟 2

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

Lambda Services

步驟 3

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

My First Lambda

步驟 4

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

Code Entry

步驟 5

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

Save Button Lambda

步驟 6

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

Test Button

步驟 7

index.js 的程式碼如下:

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

這將呼叫回撥函式,結果可能是錯誤或成功。成功時,您將看到Lambda 測試訊息;如果出錯,它將傳遞 null。

步驟 8

Lambda 函式的角色詳細資訊是配置的一部分,如下所示:

Role Execution

步驟 9

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

Description

步驟 10

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

Designer

從中,您可以選擇希望 Lambda 函式觸發的觸發器。當您選擇觸發器時,必須新增觸發器的配置詳細資訊。

例如,對於 S3 上的觸發器,要新增的配置詳細資訊如下:

Configure Trigger

步驟 11

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

Event Type

步驟 12

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

Prefix

步驟 13

現在,填寫觸發器的所需詳細資訊並單擊新增按鈕。儲存 Lambda 函式以新增觸發器。儲存函式會部署詳細資訊,從現在開始,只要將檔案新增到 S3 儲存桶,Lambda 就會被觸發。

觀察以下螢幕截圖,其中顯示了新增到 AWS Lambda 的 S3 觸發器:

Cloud Formation

步驟 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 示例事件:

Configure Test

步驟 17

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

Bucket Name

步驟 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");
         }
   });
};

相應的螢幕截圖如下所示:

Target Path

步驟 19

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

Mail Id
廣告