Tạo và triển khai bằng Bảng điều khiển AWS

Chúng ta có thể tạo hàm Lambda và kiểm tra tương tự trong bảng điều khiển AWS. Chương này thảo luận chi tiết về vấn đề này. Với mục đích này, bạn sẽ phải làm theo các bước được đưa ra ở đây và quan sát các ảnh chụp màn hình tương ứng được cung cấp -

Bước 1

Đăng nhập vào Bảng điều khiển AWS https://aws.amazon.com/console/. Bây giờ, bạn sẽ được chuyển hướng đến màn hình nơi các dịch vụ AWS được hiển thị.

Bước 2

Bây giờ, hãy nhấp vào Lambdadịch vụ như đã đánh dấu ở trên. Thao tác này sẽ chuyển hướng đến chức năng tạo như hình dưới đây:

Bước 3

Bây giờ, hãy nhấp vào Create functionvà nhập các chi tiết của chức năng. Sau đó, bạn có thể thấy một màn hình như hình dưới đây -

Bước 4

Bạn có thể viết mã của mình bằng cách chọn ngôn ngữ bạn chọn. Mã phải được viết trong trình soạn thảo nếu tùy chọn được chọn là chỉnh sửa mã nội tuyến. Các tùy chọn khác có sẵn như sau:

Bước 5

Sau khi hoàn tất, bạn cần lưu các thay đổi mà nút được đưa ra ở góc trên cùng bên phải như hình dưới đây -

Bước 6

Bây giờ, hãy nhấp vào Testcái nút. Điều này cung cấp tất cả các chi tiết về việc thực thi hàm Lambda như được hiển thị bên dưới:

Bước 7

Mã cho index.js như sau -

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

Điều này sẽ gọi Callback functionvà kết quả có thể là lỗi hoặc thành công. Khi thành công, bạn sẽ thấy mộtLambda testthông điệp; nếu lỗi nó sẽ vượt qua null.

Bước 8

Các Role chi tiết cho chức năng Lambda là một phần của cấu hình và được hiển thị như hình dưới đây:

Bước 9

Bây giờ, bạn có thể cập nhật vai trò nếu cần và lưu hàm Lambda. Sau đó, chi tiết bộ nhớ và thời gian chờ cho hàm lambda được hiển thị như hình dưới đây:

Bước 10

Bây giờ, chúng ta cần thêm trigger vào hàm Lambda để nó thực thi khi sự kiện xảy ra. Chi tiết kích hoạt được hiển thị ở đầu màn hình chức năng AWS Lambda như hình dưới đây -

Từ đó, bạn có thể chọn trình kích hoạt mà bạn muốn chức năng Lambda của bạn được kích hoạt. Khi bạn chọn trình kích hoạt, chi tiết cấu hình cho trình kích hoạt phải được thêm vào.

Ví dụ, để kích hoạt trên S3, chi tiết cấu hình được thêm vào như sau:

Bước 11

Bây giờ, hãy chọn nhóm mà bạn muốn kích hoạt. Loại sự kiện có các chi tiết sau:

Bước 12

Đối với trình kích hoạt, bạn cũng có thể đề cập đến các tệp loại tiền tố hoặc mẫu tệp, Lambda phải được kích hoạt. Chi tiết như hình -

Bước 13

Bây giờ, hãy điền vào các chi tiết cần thiết cho trình kích hoạt và nhấp vào Add . Lưu chức năng Lambda để kích hoạt được thêm vào. Lưu chức năng triển khai chi tiết và từ bây giờ trở đi bất cứ khi nào tệp được thêm vào nhóm S3, Lambda sẽ được kích hoạt.

Quan sát ảnh chụp màn hình sau cho thấy trình kích hoạt S3 được thêm vào AWS Lambda -

Bước 14

Bây giờ, chúng ta hãy sử dụng sự kiện mẫu S3 để kiểm tra hàm Lambda. Mã cho cùng một được hiển thị ở đây -

Sự kiện mẫu đặt trên Amazon S3

{
   "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"
   }]
}

Bạn sẽ phải sử dụng lệnh sau để lấy thông tin chi tiết của tệp được tải lên từ sự kiện đưa S3 -

event.Records[0].s3.object.key     //will display the name of the file

Bạn sẽ phải sử dụng lệnh sau để lấy tên thùng:

event.Records[0].s3.bucket.name    //will give the name of the bucket.

Bạn sẽ phải sử dụng lệnh sau để lấy EventName -

event.Records[0].eventName        // will display the event name

Bước 15

Bây giờ, chúng ta hãy cập nhật mã AWS Lambda để in chi tiết S3 như hình dưới đây -

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

Bước 16

Lưu các thay đổi. Nhấp chuộtTest và nhập sự kiện mẫu S3 -

Bước 17

Bây giờ bấm vào Test và bạn có thể thấy đầu ra như được hiển thị -

Bước 18

Để kiểm tra trình kích hoạt trên S3 bằng dịch vụ S3 AWS, hãy tải lên một tệp trong nhóm S3: test bucket trigger. Cập nhật vai trò được sử dụng với Lambda để nhận quyền của S3 và chính sách SES (để gửi thư). Thao tác này sẽ cập nhật mã AWS Lambda để gửi thư để xem trình kích hoạt hoạt động -

Mã AWS Lambda được cập nhật như được hiển thị:

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      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: "[email protected]"
   };
   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");
         }
   });
};

Ảnh chụp màn hình tương ứng như được hiển thị ở đây -

Bước 19

Bây giờ, hãy tải tệp lên và kiểm tra id thư được cung cấp trong mã AWS Lambda -