AWS Lambda - Giới thiệu

AWS Lambda là một dịch vụ xử lý việc tính toán mã của bạn mà không cần bất kỳ máy chủ nào. Nó được cho là máy tính không máy chủ. Mã được thực thi dựa trên phản hồi của các sự kiện trong dịch vụ AWS như thêm / xóa tệp trong nhóm S3, cập nhật Amazon DynamoDBtables, yêu cầu HTTP từ cổng Amazon Api, v.v.

Mã AWS Lambda có thể được viết bằng NodeJS, Java, C #, Python và Go. Chương này sẽ nói chi tiết về cách tạo hàm AWS Lambda trong bảng điều khiển AWS.

Bảng điều khiển AWS

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

Ví dụ: Tạo một hàm

Hãy để chúng tôi hiểu chức năng của Bảng điều khiển AWS với sự trợ giúp của Ví dụ. Click vào Lambda (đánh dấu ở trên), nó sẽ chuyển hướng tạo hàm như hình bên dưới -

Nhấp chuột Create function và màn hình hiển thị các chi tiết sau:

Lưu ý rằng, theo mặc định, tùy chọn là Author from scratch. Tùy chọn này cho phép bạn viết mã Lambda từ đầu. Nó sẽ chỉ có một chức năng đơn giản vớihello world thông điệp.

Tùy chọn thứ hai Blue prints có chi tiết sau đây.

Nó cung cấp thông tin chi tiết về mã đã được viết cho một số dịch vụ aws bằng các ngôn ngữ có sẵn với AWS Lambda. Trong trường hợp bạn cần viết mã AWS Lambda cho bất kỳ dịch vụ nào bạn có thể đăng kýblue prints và bắt đầu.

Tùy chọn thứ ba Serverless Application Repository có thiết lập ứng dụng không máy chủ sẽ giúp triển khai mã AWS Lambda.

Trong phần thảo luận sâu hơn, chúng tôi sẽ làm việc trên tùy chọn đầu tiên mà chúng tôi tạo hàm AWS lambda bằng cách sử dụng Author from scratch.

Trước khi chúng ta tạo hàm Lambda, sẽ cần một vai trò, tức là quyền làm việc với các dịch vụ AWS và aws lambda. Sau đó, Vai trò phải được gán cho hàm aws lambda.

Tạo vai trò trong Bảng điều khiển AWS

Để tạo một vai trò trong Bảng điều khiển AWS, hãy truy cập Dịch vụ bảng điều khiển AWS và nhấp vào IAM như hình dưới đây -

Bây giờ, nếu bạn nhấp vào IAM, bạn sẽ có màn hình như hình dưới đây -

Nếu bạn chọn Roles, bạn có thể thấy các nút sau trên màn hình -

Bây giờ, hãy nhấp vào Create role. Nó sẽ yêu cầu bạn chọn dịch vụ mà bạn cần sử dụng vai trò đã tạo.

Vì chúng tôi cần sử dụng vai trò này với AWS Lambda, hãy chọn Lambda và bấm vào Next:Permissionsnhư hình trên. Màn hình tiếp theo hiển thị tên chính sách khả dụng theo các dịch vụ AWS. Bạn có thể chọn chính sách từ đây -

Ví dụ: nếu bạn muốn cho phép AWS Lambda hoạt động với S3 và DynamoDB, bạn cần chọn chính sách. Trong hộp tìm kiếm, nhập dịch vụ AWS và nhấp vào hộp kiểm. Bạn có thể chọn nhiều chính sách và sau đó nhấp vàoNext:Review.

Nó cũng có thể tạo ra chính sách của riêng bạn. Ví dụ: có một bảng động và bạn chỉ cần cấp quyền cho bảng đó, trong những trường hợp như vậy, bạn có thể tạo chính sách.

Bấm vào Create policynhư hiển thị trong màn hình trên. Sau đây là các chi tiết hiển thị trên màn hình.

Chọn một Servicemà bạn đang tạo chính sách. Sau đó, nó sẽ hiển thị dữ liệu cho các Hành động,resourcesRequest conditions.

Bây giờ, chúng ta nên chọn dịch vụ. Hãy để chúng tôi chọnAWS Dynamodb khỏi tìm kiếm. Actions có chi tiết sau -

Bây giờ, hãy nhập Access levelbạn muốn cung cấp cho DynamoDB. Sau đó,resources sẽ hiển thị các chi tiết sau:

Bây giờ, hãy chọn loại tài nguyên bảng. Bạn có thể xem kết quả sau:

Để có quyền trên bàn, bạn cần phải Add ARN. ARN là các chi tiết duy nhất cho bảng được tạo trong AWS DynamoDB. Bạn sẽ nhận được thông tin chi tiết khi bảng được tạo trong dynamicodb.

Nếu bạn nhấp vào Add ARN và nó sẽ hiển thị các chi tiết sau:

Bây giờ, nếu bạn nhập ARNRegion, AccountTabletên sẽ được phổ biến. Bạn nên nhấp vàoAddđể thêm chính sách. Tương tự, bạn có thể tạo chính sách cho các dịch vụ khác.

Ở đây, chúng tôi đã chọn hai chính sách AmazonS3FullAccessAmazonDynamoDBFullACcess. Chúng tôi đã cấp toàn quyền truy cập vào S3 và DynamoDB trong vai trò đó. Tuy nhiên, bạn chỉ nên cấp quyền cho các nhóm và bảng cần thiết.

Bạn có thể làm theo các bước đã thảo luận trước đó để tạo các chính sách bằng cách sử dụng ARN.

Bước 1

Nhấp chuột Create roleđể tạo vai trò. Tất cả các vai trò đã tạo được hiển thị như minh họa -

Bước 2

Lưu ý rằng bạn có thể chọn vai trò bạn yêu cầu trong trường hợp bạn cần bất kỳ sửa đổi nào cho vai trò đã tạo. Nếu chúng tôi chọnAuthor from scratch option, bạn phải nhập Name, Runtime and Role.

Bước 3

Bạn có thể quan sát các chi tiết sau đây trong Runtime thả xuống -

Bước 4

Bạn có thể chọn thời gian chạy mà bạn chọn và tiến hành như hình minh họa.

Role thả xuống có các tùy chọn sau:

  • Choose an existing role − Điều này sẽ hiển thị tất cả các vai trò được tạo trong các vai trò IAM.

  • Create new role from template(s) −Điều này sẽ cho phép bạn tạo vai trò và sẽ hiển thị quyền được chọn cho vai trò đó. Quan sát ảnh chụp màn hình để hiểu rõ hơn.

  • Create a custom role − Điều này cho phép người dùng tạo các chính sách như chúng ta đã thảo luận trước đó.

Bước 5

Chọn runtime, rolevà thêm chức năng. Bấm vàoCreate functionđể tạo hàm lambda. Màn hình tiếp theo được hiển thị như sau:

Các phần của Hàm AWS Lambda

Có hai phần cho hàm AWS Lambda:ConfigurationMonitoring. Hãy để chúng tôi thảo luận về từng chi tiết.

Cấu hình

Các chức năng sau được bao gồm trong Cấu hình.

Add Triggers

Các trình kích hoạt cần được thêm vào hàm AWS Lambda được hiển thị như sau:

Lưu ý rằng khi chúng ta chọn một trình kích hoạt, chúng ta cần thêm chi tiết cấu hình cho trình kích hoạt đó. Ví dụ cho trình kích hoạt S3, chúng ta cần chọn tên thùng; để kích hoạt Dynamodb, chúng ta cần chọn tên bảng.

Thí dụ

Hãy để chúng tôi xem một ví dụ về chi tiết cấu hình cho trình kích hoạt S3 -

Bây giờ, hãy thêm chi tiết cấu hình cho trình kích hoạt S3 đã thêm -

Ở đây, bạn cần chọn bucket name, event type trên đó bạn muốn kích hoạt Lambda, tiền tố và mẫu bộ lọc nếu có và Add trình kích hoạt.

Thêm mã trong Lambda

Bây giờ, chúng ta nên tập trung vào mã Lambda sẽ được viết. Để thêm mã trong aws lambda, có ba tùy chọn:

  • Sử dụng trình chỉnh sửa nội tuyến
  • Sử dụng tệp .zip
  • Tải tệp lên từ Amazon S3

Nó được hiển thị trong ảnh chụp màn hình dưới đây -

Hãy để chúng tôi thảo luận chi tiết từng người trong số họ.

Using the inline editor

Trình chỉnh sửa mã nội tuyến nơi bạn có thể viết mã cho mình như sau:

Bạn có thể viết mã của mình bằng cách chọn ngôn ngữ bạn chọn. Bạn được phép chọn lại thời gian chạy tại đây.

Quan sát ảnh chụp màn hình sau để hiểu rõ hơn -

Mã phải được viết bằng index.js.Handler. Chi tiết sẽ khác nhau dựa trên thời gian chạy. Đối vớinodejs, nó là filename.export function đó là ngay bây giờ index.lambda handler.

Upload a .ZIP file

Trước tiên, bạn có thể viết mã, nén mã và tải lên tệp zip bằng cách chọn Upload a .ZIP file.

Upload a file from Amazon S3

Bạn có thể tải tệp lên trong nhóm S3 và chọn tùy chọn Upload a file from Amazon S3.

Lưu ý rằng đối với .ZIPS3 sẽ không thể thay đổi thời gian chạy.

Các biến môi trường

Họ lấy các cặp giá trị chính và chia sẻ chúng với mã AWS Lambda. Chúng tôi có thể sử dụng các biến môi trường trong AWS Lambda để lưu trữ chi tiết kết nối cơ sở dữ liệu, chi tiết tệp để lưu trữ đầu ra, chi tiết tệp nhật ký, v.v.

Thẻ

Chúng là các cặp khóa-giá trị được thêm vào AWS Lambda để tổ chức chức năng tốt hơn khi được sử dụng trên các vùng khác nhau. Đối với trường hợp sử dụng đơn giản, nó không bắt buộc. Khi có nhiều hàm Lambda được tạo, việc gắn thẻ sẽ giúp lọc và quản lý các hàm Lambda.

Vai trò thực thi

Bạn có thể thay đổi lại vai trò ở đây nếu không được thực hiện đúng cách khi bắt đầu tạo hàm Lambda. Bạn có thể cập nhật hoặc tạo vai trò mới tại đây. Nó cung cấp các tùy chọn tương tự được hiển thị khi bắt đầu tạo hàm Lambda.

Cài đặt cơ bản

Tại đây, bạn cần nhập mô tả ngắn gọn về chức năng Lambda của bạn đang làm. Chọn bộ nhớ và thời gian chờ cần thiết cho chức năng Lambda.

Mạng lưới

Điều này cho phép bạn chọn VPC sẽ cho phép bạn truy cập chức năng Lambda từ VPC. Theo mặc định, không có VPC nào được chọn.

Gỡ lỗi và xử lý lỗi

Để gỡ lỗi và xử lý lỗi, bạn có thể chọn dịch vụ AWS để gửi thông tin chi tiết. Các tùy chọn có sẵn làNone, SNSSQS.

Đồng tiền

Điều này cho phép bạn phân bổ một giới hạn cụ thể của các lần thực thi đồng thời được phép cho chức năng này.

Kiểm toán và Tuân thủ

Điều này chứa nhật ký được quản lý với sự trợ giúp của AWS CloudTrail.

Sau khi hoàn tất, bạn cần lưu các thay đổi bằng cách sử dụng nút Lưu như được hiển thị ở đây -

Bây giờ, nếu bạn nhấp vào Test, nó sẽ yêu cầu một sự kiện thử nghiệm. Bạn có thể vượt qua một sự kiện thử nghiệm mẫu như sau:

Sự kiện thử nghiệm được tạo như được hiển thị ở đây -

Bây giờ, hãy lưu sự kiện kiểm tra và nhấp vào nút kiểm tra để xem việc thực thi hàm AWS Lambda -

Mã cho index.js như sau -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log(event.key1);
   console.log(event.key2);
   console.log(event.key3);
   callback(null, 'Lambda test');
};

Lưu ý rằng hàm gọi lại được gọi khi có lỗi hoặc thành công. Nếu thành công, bạn có thể thấyLambda test sẽ được hiển thị.

Giám sát

Chọn tab giám sát để xem chi tiết thực thi của chức năng Lambda. Biểu đồ hiển thị chi tiết về thời gian thực hiện, lỗi xảy ra, v.v.

Bạn cũng có thể xem nhật ký trong Cloudwatch. Đối với điều này, hãy truy cập dịch vụ AWS và chọn đồng hồ đám mây như được hiển thị -

Bây giờ, chọn nhật ký từ phía bên trái và nhập tên chức năng của bạn vào bộ lọc -