Skip to main content

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ì?

AWS Lambda Icon

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

How AWS Lambda Works

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.

Lambda Demonstration: Kết nối SQS với Lambda

Bạn đã học rất nhiều về Lambda và bây giờ đã đến lúc đưa kiến thức đó vào thực tế. Trong demonstration này, bạn sẽ học cách kết nối Amazon Simple Queue Service (Amazon SQS) với Lambda để xây dựng một event-driven workflow.

Architecture

Chúng ta có một SQS queue tự động trigger một Lambda function bất cứ khi nào một message mới được thêm vào nó. Ngay cả cho workflow trông đơn giản này, chúng ta phải đảm bảo Lambda function có permissions đúng để truy cập SQS queue.

Các bước thực hiện

  1. Tạo SQS Queue: Tạo một SQS queue và thêm messages vào đó
  2. Tạo Lambda Function: Sử dụng blueprint để tạo Lambda function nhanh chóng
  3. Cấu hình Execution Role: Thiết lập IAM role với permissions để Lambda có thể đọc messages từ SQS queue
  4. Thiết lập SQS Trigger: Cấu hình SQS queue như một trigger cho Lambda function
  5. Kiểm tra: Verify rằng messages được xử lý và xem logs trong CloudWatch

Kết quả

Sau khi cấu hình, mỗi khi một message được thêm vào SQS queue, Lambda function sẽ tự động được trigger, xử lý message, và log kết quả vào CloudWatch Logs. Tất cả diễn ra tự động mà không cần quản lý servers.

Lambda Integration với AWS Services

Lambda tích hợp với các AWS services khác khá dễ dàng. Điều này có nghĩa là bạn có thể xây dựng crab classifier app đầy đủ sử dụng nhiều AWS services và vẫn không phải lo lắng về việc spin servers up và down. Bạn chỉ phải lo lắng về việc đưa tất cả các loài cua đó vào database của bạn.

Có hơn 7,000 loài cua, nhân tiện. Nhưng bạn sẽ có chúng trong một nháy mắt.

Lambda Best Practices

  1. Function Duration: Giữ functions ngắn gọn (tối đa 15 phút)
  2. Memory Configuration: Cấu hình memory phù hợp để tối ưu performance và cost
  3. Error Handling: Implement proper error handling và retry logic
  4. Security: Sử dụng IAM roles với least privilege principle
  5. Monitoring: Sử dụng CloudWatch để monitor function performance và errors
  6. Cold Starts: Tối ưu hóa để giảm cold start times

Tóm tắt

Trong bài học này, bạn đã học về:

  • AWS Lambda: Serverless compute service chạy code mà không cần quản lý servers
  • Function as a Service (FaaS): Lambda là một FaaS platform
  • Key Components: Functions, Triggers, Runtimes, và Automatic Scaling
  • How Lambda Works: 4 bước chính từ upload code đến pay-per-use
  • Use Cases: Image processing, content delivery, event handling
  • Integration: Lambda tích hợp dễ dàng với các AWS services khác
  • Best Practices: Duration limits, memory configuration, security, monitoring

Test your skills

Câu hỏi 1

A development team at a fintech startup is building a new customer-facing microservice using AWS Lambda. AWS takes care of the infrastructure, but the team is focused on meeting strict security and compliance requirements.

Which task is still the team's responsibility when using Lambda?

  • Patching the underlying operating system
  • Scaling the infrastructure
  • Managing data access permissions ← Correct
  • Managing server availability

Giải thích: Mặc dù AWS quản lý infrastructure, team vẫn chịu trách nhiệm cấu hình đúng AWS Identity and Access Management (IAM) roles và permissions cho bất kỳ services nào mà Lambda function truy cập.

Câu hỏi 2

A photography company offers cloud-based photo editing and storage. To streamline operations, it uses AWS Lambda to automatically process photos—resizing images, applying filters, and organizing files—every time a client uploads a new image.

Which key components are involved in running an automated photo processing workflow with Lambda? (Select THREE.)

  • Lambda function ← Correct
  • Triggers ← Correct
  • Server provisioning
  • Runtimes ← Correct
  • Manual scaling configuration
  • Operating system selection

Giải thích: Các key components của AWS Lambda là function, triggers, và runtimes. Các components này xử lý code, phản ứng với events, và cung cấp language environment. Khách hàng không cần quản lý servers, scaling, hoặc operating systems. AWS chăm sóc tất cả điều đó.