Lambda là gì? Tìm hiểu về chức năng và ứng dụng của Lambda.

Lambda là dịch vụ compute do AWS cung cấp, hay còn gọi là serverless. Theo đó người dùng có thể thực thi các đoạn mã code ứng dụng mà không cần quan tâm đến việc quản lý và vận hành hạ tầng máy chủ.

Lambda chỉ tính phí người dùng trên số lần thực thi code, và có thể mở rộng từ vài request/ngày đến hàng ngàn request/ngày.

Kiến trúc Lambda

Khi xây dựng ứng dụng sử dụng Lambda, các thành phần cốt lõi của Lambda là các Function và Trigger. Các Trigger có thể là cac AWS service hay Application mà tạo ra sự kiện đầu vào, còn AWS Function là thành phần chứa code và môi trường thực thi các đoạn mã code này.

Ứng dụng

  • File Processing: Một ví dụ cụ thể là khi bạn có ứng dụng upload và lưu trữ file trên AWS S3 bucket. Sau đó, ứng dụng sẽ tạo các phiên bản thumbnail của mỗi user để hiển thị avatar của user trên web. Trong trường hợp này chúng ta có thể sử dụng Lambda để tạo các thumbnail một cách tự động. Bản thân các AWS S3 đã hỗ trợ sẵn các event để làm trigger khi có tác vụ thực thị trên nó như object-created events và có thể sử dụng làm đầu vào để trigger Lambda. Tiếp theo, ứng dụng sử dụng Lambda của bạn sẽ đọc file trên S3, tạo thumbnail và lưu vào một bucket khác.
  • Phân tích dữ liệu: Một ứng dụng khác của Lambda là sử dụng để xử lý và phân tích dữ liệu. Lấy một ví dụ cụ thể khi bạn có một tập các dữ liệu thô đầu vào được lưu trữ trong Dynamo DB. Khi bạn thực hiện đọc, ghi, thêm trong database, đồng thời Dynamo DB sẽ tạo ra các sự kiện tương ứng với bảng dữ liệu. Trong trường hợp này thì các sự kiện sẽ chưa các dữ liệu như item key, event name (insert, update, and delete) và các thông tin liên quan khác. Qua đó bạn có thể viết Lambda function để tạo ra các metrics tùy biến bằng cách tập hợp các dữ liệu thô này.

Các bước thực hiện tuần tự như sau:

  • Ứng dụng ghi record đến Kinesis stream
  • AWS Lambda liên tục theo dõi luồng và gọi hàm Lambda khi phát hiện các bản ghi mới trên luồng. AWS Lambda nhận biết luồng nào để theo dõi ​và chức năng Lambda nào sẽ được gọi dựa trên ánh xạ nguồn sự kiện mà bạn tạo trong Lambda.
  • Lambda function được gọi với sự kiện đầu vào

Khi làm việc với các sự kiện dựa trên stream, bạn cần tạo các ánh xạ sự kiện nguồn trên AWS Lambda. Theo đó Lambda đọc các phần tử tron stream gọi function một cách đồng thời. Bạn không cần cấp quyền để gọi function mà chỉ cần cấp quyền để đọc stream.

Websites: Sử dụng Lambda để triển khai backend cho ứng dụng. Trường hợp này bạn có thể gọi các Lambda function qua các Amazon API Gateway như các HTTP endpoint. Sau đó các API Gateway sẽ chuyển request tới Lambda.

Mobile applications: Giả sử bạn có một ứng dụng di động tùy chỉnh tạo ra các sự kiện. Bạn có thể tạo một hàm Lambda để xử lý các sự kiện được xuất bản bởi ứng dụng tùy chỉnh của bạn. Ví dụ: trong trường hợp này, bạn có thể định cấu hình chức năng Lambda để xử lý các nhấp chuột trong ứng dụng di động tùy chỉnh của bạn.

Scheduled job: Các Function này của Lambda có thể thực hiện các job định kỳ bằng cách sử dụng trigger từ AWS CloudWatch Event.

Notification Processing: Sử dụng Lambda để đăng ký các SNS Topic. Khi bản tin được chuyển tới SNS topic mà có Lambda đăng ký sẵn, các Lambda function có thể được kích hoạt để xử lý các nội dung bên trong của các Message.

Queue Processing: Sử dụng AWS Lambda function để xử lý các bản tin từ SQS. Theo đó Lambda sẽ theo dõi queue và tạo ra function xử lý.

Tham khảo:

https://dev.to/frosnerd/event-handling-in-aws-using-sns-sqs-and-lambda-2ng

Leave a Reply

Your email address will not be published. Required fields are marked *