Giới thiệu về AWS Lambda

AWS Lambda là một dịch vụ tính toán nơi mà bạn có thể upload code của mình lên, và dịch vụ AWS Lambda sẽ giúp bạn chạy đoạn code đó bằng việc sử dụng các tài nguyên sẵn có của AWS. Sau khi bạn upload code, và bạn tạo ra một Lambda function, AWS sẽ cung cấp và quản lý các server mà bạn sử dụng để chạy code. Về phần sử dụng AWS, bạn có thể làm như sau:

  • một dịch vụ tính toán hướng sự kiện nơi mà AWS Lambda chạy code của bạn và trả về các sự kiện, những thay đổi về data được đẩy vào một bucket của Amazon S3 hoặc là một bảng của Amazon DynamoDB. ( bạn có thể tìm hiểu thêm về Amazon DynamoDB)
  • Dịch vụ tính toán để chạy code và sẽ trả về các HTTP request sử dụng Amazon API Gateway hoặc API dùng đến AWS SDKs.

AWS Lambda sẽ chạy code mà bạn upload trên môi trường có tính sẵn sàng cao và vận hành với quyền cao nhất đối với các tài nguyên tính toán, bao gồm server và hệ điều hành. Những gì bạn cần làm là chắc chắn code thuộc một trong những ngôn ngữ mà AWS Lambda đang hỗ trợ: Node.js, Java, Python.

Để vận hành code được tốt nhất, bạn có thể tham khảo cách xác định và tính toán tài nguyên cần dùng cho AWS Lambda tại Xác định tài nguyên cho AWS Lambda

AWS Lambda chỉ thực hiện code của bạn chỉ khi cần thiết, và được mở rộng một cách tự động, từ một vài request đến hàng ngàn request/ giây. Với khả năng đó, bạn có thể sử dụng Lambda dễ dàng để build dữ liệu cho các dịch vụ AWS S3 và Amazon DynamoDB, luồng xử lý dữ liệu trong Amazon Kinesis hoặc tạo back end riêng mà AWS thực hiện có quy mô, năng suất và bảo mật.

Khi nào chúng ta nên dùng AWS Lambda?

AWS Lambda là nền tảng tính toán lý tưởng cho nhiều kịch bản ứng dụng, cung cấp cho bạn môi trường ở những ngôn ngữ đang được hỗ trợ từ AWS ( Java, Node.js, Python ).

Khi sử dụng AWS Lambda, bạn cần chắc chắn về phần code của mình, phần việc còn lại bao gồm quản lý cân bằng bộ nhớ, CPU, mạng và các tài nguyên khác sẽ do AWS Lambda đảm nhiệm. Nó khá linh hoạt, có thể thực hiện và hoạt động các công việc với quyền cao nhất của mình, bao gồm lập dự phòng và hiệu năng, theo dõi các tài nguyên, bảo mật, deploy code. Tuy nhiên, điều đó đồng nghĩa với việc, bạn không thể can thiệp vào các tiến trình và tài nguyên khi AWS Lambda đang chạy.

Nếu bạn muốn can thiệp vào những phần này. Đừng lo lắng, AWS Lambda cung cấp một dịch vụ cho phép bạn có thể tự mình quản lý các tài nguyên này, đó là EC2 ( Amazon Elastic Compute Cloud ) – dịch vụ này cho phép bạn có thể tùy ý thay đổi từ các tùy chọn trên EC2, như là: tùy biến bộ nhớ, mạng và bảo mật, các software stack. Tuy nhiên, vấn đề về hiệu năng sẽ là công việc của bạn, cộng với theo dõi các tài nguyên và sử dụng khu vực có thể phát sinh lỗi.

AWS cũng cung cấp cho bạn Elastic Beanstalk cung cấp các dịch vụ dễ dàng sử dụng cho deploy và khả năng mở rộng ứng dụng trên Amazon EC2.

Lambda hoạt động ra sao?

Trước hết, bạn có thể xem hướng dẫn cài đặt Lambda

Các thành phần chính: Lambda Function và Event Source

Lambda function và Event Source là những thành phần chính trong khi bạn làm việc với AWS Lambda.

Event Source đưa ra các sự kiện, và một Lambda function tùy biến code theo những gì bạn viết và xử lý các sự kiện một cách tự động, mỗi thay đổi của Event sẽ kích hoạt Lambda function tương ứng của bạn, bạn có thể gọi Lambda function điều hướng đến HTPS hoặc sử dụng AWS SDKs.

Lambda function: bạn upload code hoàn chỉnh của mình lên Lambda, khi đó chúng ta gọi nó là function của Lambda, và Lambda function có quan hệ phụ thuộc với cấu hình mà bạn đã cài đặt, nói cách khác, bạn phải cài đặt trước tài nguyên cho function đó, và tất nhiên, cài đặt này có thể chỉnh sửa được.

Tính toán tài nguyên cho hệ thống là con số ước lượng mà bạn đưa ra mà function của mình cần dùng. Bạn chỉ cần tính toán về bộ nhớ, hệ thống sẽ tự tính toán ra CPU cho bạn.

Ví dụ: nếu bạn cấp phát 256MB cho function của mình, thì CPU nhận được sẽ lớn gấp đôi trong trường hợp bạn chỉ cấp phát 128MB cho function đó.

Gọi Lambda function tự động: sử dụng Event Sources

Các Event Source xuất ra các event bởi Lambda function đã được gọi. Khi gọi, AWS Lambda thực hiện code của bạn băng cách thông qua cá event để xử lý Lambda function trong code. Có thể liên kết các event source với các Lambda function sử dụng event source mapping. Việc mapping cần để ý đến một số yếu tố như là loại bucket, region… phải đồng bộ.

Chú ý một số điểm:

  • Lambda function và bucket phải có cùng region. Ví dụ như: bucket ở region Tokyo thì lambda function cũng phải được config region là Tokyo.
  • Mỗi Lambda function chỉ chấp nhận một cặp suffix và Event

Trong trường hợp Lambda function của bạn chưa chạy như ý muốn, hãy chú ý tới sự đồng bộ của các yếu tố trên và config lại cho đúng để AWS Lambda có thể hỗ trợ bạn tốt nhất.

Bài viết trên đây là phần giới thiệu cho bạn về một dịch vụ của AWS, hỗ trợ người dùng trong việc sử dụng và trực tiếp điều khiển những dữ liệu đã được lưu trên Amazon server. Hiện tại, bạn có thể sử dụng và trải nghiệm các dịch vụ của AWS bằng một tài khoản miễn phí. Hãy nhanh chóng thử và trải nghiệm những tiện ích mà AWS Lambda đang đem lại cho chúng ta!