M03.02 - AWS Lambda
Trong bài học này, bạn sẽ học về AWS Lambda, một serverless compute service chạy code mà không cần quản lý servers.
Đã đến lúc đi sâu vào managed service yêu thích của tôi—AWS Lambda. Lambda là một serverless compute service. Nó cũng được gọi là Function as a Service (FaaS).
Mục tiêu học tập
Sau khi hoàn thành bài học này, bạn sẽ có thể:
- ✅ Nhớ lại Lambda là gì và core functionality của nó như một serverless compute service
- ✅ Xác định các key components của Lambda, chẳng hạn như triggers, functions, và scaling
- ✅ Hiểu cách Lambda hoạt động và các use cases phù hợp
AWS Lambda là gì?
Lambda là một serverless compute service chạy code để phản ứng với events mà không cần provision hoặc quản lý servers. Nó tự động quản lý underlying infrastructure, scaling resources dựa trên volume của requests. Bạn chỉ bị tính phí cho compute time đã sử dụng, xuống đến millisecond. Lambda xử lý execution, scaling, và resource allocation. Bạn có thể tối ưu hóa performance bằng cách cấu hình memory size phù hợp cho function của bạn.
Ví dụ: Crab Classifier App
Hãy nói rằng bạn đang xây dựng một crab classifier app nơi users upload một bức ảnh của một loài giáp xác và sau đó được thông báo khi một classification đã được thực hiện. Sau khi app của bạn đã được code, bạn sẽ cần deploy nó lên infrastructure. Điều này có nghĩa là provisioning servers, scaling up và down, và đảm bảo mọi thứ luôn available. Tôi thấy bạn đang gãi đầu và nghĩ... điều này nghe có vẻ như rất nhiều công việc, Rudy. Nhưng đừng trở nên crabby!
Bạn có thể sử dụng Lambda để chạy code! Với Lambda, bạn không cần nghĩ về servers hoặc crab clusters. Bạn tạo một Lambda function, đặt code của bạn vào đó, cấu hình một trigger, và function của bạn chạy để phản ứng với trigger đó.
Quay lại crab classifier app, một trigger đơn giản có thể là khi một user upload một bức ảnh mới của một con cua hoặc khi app đã xác định classification của một hình ảnh đã upload. Triggers có thể phức tạp hơn, mặc dù. Như xử lý dữ liệu real-time từ một stream hoặc resize một hình ảnh thành các resolutions khác nhau. Và phần claw-some là bạn không phải quản lý environment. AWS xử lý tất cả cho bạn!
Cách Lambda hoạt động

1. Upload code to Lambda
Đầu tiên, upload code lên Lambda, được upload như một Lambda function.
Bạn tạo một Lambda function và upload code của bạn vào đó. Code này có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau.
2. Set code to trigger from an event source
Tiếp theo, cấu hình code của bạn để được trigger bởi events, như AWS services, mobile apps, hoặc HTTP requests.
Bạn cấu hình trigger cho Lambda function của bạn. Triggers có thể đến từ nhiều nguồn khác nhau:
- AWS services (S3, SQS, DynamoDB, API Gateway, v.v.)
- Mobile apps
- HTTP requests
- Scheduled events (CloudWatch Events)
- Custom events
3. Run code when triggered
Code của bạn chạy chỉ khi một event xảy ra, như file upload hoặc user action. Lambda tự động xử lý tất cả server management, scaling, và infrastructure. Lambda runtime thực thi function code của bạn sử dụng event data được truyền vào nó. Bằng cách này, code của bạn chạy reliably, securely, và efficiently—mà không cần bạn quản lý servers hoặc environment mà nó chạy trong đó.
Managed environment này tự động scalable và highly available. Điều này có nghĩa là dù bạn nhận được một single trigger hay hàng nghìn, Lambda sẽ scale up hoặc down để đáp ứng demand. Thậm chí tốt hơn, AWS chăm sóc tất cả patching, updates, và security. Bạn chỉ cần focus vào code của mình.
4. Pay only for the compute time used
Bạn chỉ bị tính phí cho compute time đã sử dụng, xuống đến millisecond. Giá phụ thuộc vào lượng memory mà bạn allocate cho function của mình.
Với code đó, chỉ cần lưu ý rằng maximum duration của một Lambda function là 15 phút. Nếu bạn không thể chia code của mình thành các segments 15 phút, Lambda có thể không phải là lựa chọn tốt nhất.
Key Components của Lambda
Lambda Functions
Lambda function là code của bạn được đóng gói và deploy lên Lambda. Mỗi function có:
- Code: Logic của application
- Configuration: Memory, timeout, environment variables
- Execution role: IAM role với permissions cần thiết
Triggers
Triggers là events khởi động Lambda function. Các loại triggers phổ biến:
- API Gateway: HTTP requests
- S3: Object uploads, deletions
- SQS: Messages trong queue
- DynamoDB: Database changes
- CloudWatch Events: Scheduled events
- Kinesis: Data streams
Runtimes
Runtimes cung cấp language-specific environment relay invocation events, context information, và responses giữa Lambda và function.
Supported runtimes:
- Java
- Python
- Node.js
- .NET
- Go
- Ruby
- Custom runtimes (bạn có thể build runtime riêng)
Scaling
Lambda tự động scale dựa trên số lượng requests:
- Concurrent executions: Lambda có thể chạy hàng nghìn functions đồng thời
- Automatic scaling: Không cần cấu hình manual
- High availability: Functions được distribute trên multiple Availability Zones
Lambda Use Cases
Lambda lý tưởng cho việc xây dựng responsive, event-driven applications trên nhiều ngành công nghiệp. Dưới đây là ba ví dụ thực tế cho thấy cách Lambda giúp các công ty scale hiệu quả, giảm operational overhead, và chỉ trả cho những gì họ sử dụng.
1. Real-time Image Processing cho Social Media Application
Một công ty social media sử dụng Lambda để xử lý hình ảnh được upload bởi users. Khi một photo được upload, Lambda được trigger để resize hình ảnh, áp dụng filters, và lưu nó ở format tối ưu vào storage. Event-driven, serverless approach này đảm bảo rằng application có thể xử lý high volumes của uploads mà không cần quản lý infrastructure.
Tại sao Lambda: Nó tự động scale dựa trên uploads và chỉ tính phí cho thời gian dành để xử lý mỗi hình ảnh.
2. Personalized Content Delivery cho News Aggregator
Một news aggregator sử dụng Lambda để fetch và xử lý news articles từ nhiều sources, sau đó nó tùy chỉnh recommendations dựa trên user preferences. Khi một user mở application hoặc thực hiện search, Lambda functions được trigger để retrieve data, chạy personalization logic, và return relevant content.
Tại sao Lambda: Nó tự động scale với user traffic và giảm costs bằng cách chạy code chỉ khi users tương tác.
3. Real-time Event Handling cho Online Game
Một gaming company sử dụng Lambda để xử lý in-game events như player actions, game state changes, và real-time leader board updates. Mỗi event (như scoring a point hoặc unlocking an achievement) trigger một Lambda function cập nhật player data và game status.
Tại sao Lambda: Nó xử lý hàng nghìn events, real-time, mà không cần quản lý servers. Costs scale với usage, điều này lý tưởng cho peak gaming times.