AWS Lambda là gì? Hàm Lambda với các ví dụ

⚡ Tóm tắt thông minh

AWS Lambda là một nền tảng điện toán phi máy chủ, hướng sự kiện từ... Amazon Dịch vụ web chạy mã của bạn để phản hồi các sự kiện kích hoạt, tự động xử lý việc cấp phát, mở rộng quy mô và quản lý máy chủ, giúp bạn chỉ tập trung vào logic nghiệp vụ.

  • 🇧🇷 Mô hình không máy chủ: AWS Lambda chạy mã mà không cần cấp phát hoặc quản lý máy chủ, loại bỏ việc vá lỗi hệ điều hành, mở rộng quy mô và lập kế hoạch dung lượng.
  • Thực thi dựa trên sự kiện: Các hàm được kích hoạt từ các dịch vụ AWS như S3, DynamoDB, API Gateway và SNS, chỉ hoạt động khi có sự kiện xảy ra.
  • 🧩 Hỗ trợ ngôn ngữ: Lambda hỗ trợ Node.js, Python, JavaGo, C#, và Ruby, cùng với các môi trường chạy tùy chỉnh cho các ngôn ngữ khác.
  • 💰 Thanh toán theo lượt sử dụng: BillViệc này chỉ áp dụng trong khi mã đang được thực thi, được đo bằng mili giây, với gói miễn phí hàng tháng vĩnh viễn là một triệu yêu cầu.
  • 🛠️ Các khái niệm cốt lõi: Các hàm, môi trường thực thi, nguồn sự kiện, lớp và luồng nhật ký xác định cách Lambda thực thi và quản lý mã.
  • 🤖 Hỗ trợ AI: GitHub Copilot và Amazon Q tạo ra mã Lambda, trong khi Lambda điều phối quá trình suy luận trí tuệ nhân tạo thông qua Amazon nền móng.

AWS Lambda là gì?

Trước khi tìm hiểu về AWS Lambda, việc hiểu rõ khái niệm "điện toán phi máy chủ" (serverless) là rất hữu ích.

Máy chủ là gì?

Serverless là thuật ngữ thường dùng để chỉ các ứng dụng không cần máy chủ. Các ứng dụng không cần máy chủ là những ứng dụng không cần cung cấp máy chủ và không yêu cầu bạn phải quản lý máy chủ.

AWS Lambda là gì?

AWS Lambda là một nền tảng điện toán không có máy chủ, theo sự kiện được cung cấp bởi Amazon như một phần của Amazon Dịch vụ web. Do đó, bạn không cần phải lo lắng về việc khởi chạy tài nguyên AWS nào hoặc quản lý chúng như thế nào. Thay vào đó, bạn chỉ cần đặt mã lên Lambda và nó sẽ chạy.

Trong AWS Lambda, mã được thực thi dựa trên phản hồi của các sự kiện trong các dịch vụ AWS, chẳng hạn như thêm hoặc xóa tệp trong nhóm S3, yêu cầu HTTP từ... Amazon Cổng API và các sự kiện tương tự. Tuy nhiên, Amazon Lambda chỉ có thể được sử dụng để thực thi các tác vụ ở chế độ nền.

Chức năng AWS Lambda giúp bạn tập trung vào sản phẩm cốt lõi và logic kinh doanh thay vì quản lý quyền truy cập hệ điều hành (OS), vá lỗi hệ điều hành, điều chỉnh kích thước, cấp phát, mở rộng quy mô, v.v.

AWS Lambda hoạt động như thế nào?

Ví dụ AWS Lambda với sơ đồ khối sau đây giải thích cách thức hoạt động của AWS Lambda trong một vài bước đơn giản:

Sơ đồ khối AWS Lambda

Bước 1: Trước tiên hãy tải lên mã AWS Lambda của bạn bằng bất kỳ ngôn ngữ nào được AWS Lambda hỗ trợ. Java, PythonGo và C# là một số ngôn ngữ được hàm AWS Lambda hỗ trợ.

Bước 2: Đây là một số dịch vụ AWS cho phép bạn kích hoạt AWS Lambda.

Bước 3: AWS Lambda giúp bạn tải lên mã và thông tin chi tiết về sự kiện mà mã sẽ được kích hoạt.

Bước 4: Thực thi mã AWS Lambda khi được các dịch vụ AWS kích hoạt.

Bước 5: AWS chỉ tính phí khi mã AWS Lambda được thực thi, chứ không tính phí trong các trường hợp khác.

Điều này sẽ xảy ra trong các trường hợp sau:

  • Tải tệp lên trong nhóm S3
  • Khi một điểm cuối HTTP GET/POST được gọi URL bị trúng
  • Dùng để thêm, sửa đổi và xóa bảng trong Dynamo DB.
  • Trong quá trình thu thập luồng dữ liệu
  • Thông báo đẩy
  • Lưu trữ trang web
  • Gửi email

Lưu ý: Bạn cần nhớ rằng bạn chỉ bị tính phí cho các dịch vụ AWS khi mã AWS Lambda được thực thi, nếu không bạn sẽ không phải trả bất cứ khoản phí nào.

Các sự kiện kích hoạt AWS Lambda

Dưới đây là các sự kiện sẽ được kích hoạt khi bạn sử dụng AWS Lambda.

  • Chèn, cập nhật và xóa dữ liệu trong bảng Dynamo DB.
  • Để bao gồm thông báo đẩy trong SNS
  • Để tìm kiếm lịch sử nhật ký trong CloudTrail
  • Nhập vào đối tượng S3
  • DynamoDB có thể kích hoạt AWS Lambda bất cứ khi nào có dữ liệu được thêm, sửa đổi và xóa trong bảng.
  • Giúp bạn lên lịch sự kiện để thực hiện nhiệm vụ theo một khung thời gian đều đặn.
  • Sửa đổi đối tượng trong nhóm S3
  • Thông báo được gửi từ Amazon SNS.
  • AWS Lambda có thể được sử dụng để xử lý nhật ký CloudTrail.
  • API Gateway cho phép bạn kích hoạt AWS Lambda trên các phương thức GET/POST.

AWS Lambda Concepts

Chức năng: Hàm là một chương trình hoặc tập lệnh chạy trong AWS Lambda. Lambda chuyển các sự kiện gọi vào hàm của bạn, hàm này sẽ xử lý một sự kiện và trả về phản hồi của sự kiện đó.

thời gian chạy: Môi trường thực thi (Runtime) cho phép các hàm thuộc nhiều ngôn ngữ khác nhau chạy trên cùng một môi trường thực thi cơ bản. Điều này giúp bạn cấu hình hàm của mình trong môi trường thực thi. Nó cũng phù hợp với lựa chọn của bạn. ngôn ngữ lập trình.

Nguồn sự kiện: Nguồn sự kiện là một dịch vụ AWS, chẳng hạn như Amazon SNS, hoặc một dịch vụ tùy chỉnh. Trình kích hoạt này giúp hàm thực thi logic của nó.

Lớp Lambda: Các lớp Lambda là một cơ chế phân phối quan trọng cho các thư viện, thời gian chạy tùy chỉnh và các phần phụ thuộc chức năng quan trọng khác. Thành phần AWS này cũng giúp bạn quản lý mã chức năng phát triển của mình một cách riêng biệt với mã và tài nguyên không thay đổi mà nó sử dụng.

Luồng nhật ký: Luồng nhật ký cho phép bạn chú thích mã hàm của mình bằng các câu lệnh ghi nhật ký tùy chỉnh, giúp bạn phân tích luồng thực thi và hiệu suất của các hàm AWS Lambda.

Cách sử dụng AWS Lambda

Bây giờ, chúng ta sẽ học cách sử dụng AWS Lambda với một ví dụ về AWS Lambda:

Bước 1) Mở AWS Lambda URL

Đến phần https://aws.amazon.com/lambda/ và Bắt đầu.

Cách sử dụng AWS Lambda

Bước 2) Tạo một tài khoản

Tiếp theo, hãy tạo tài khoản hoặc đăng nhập bằng tài khoản hiện có của bạn.

Cách sử dụng AWS Lambda

Bước 3) Chỉnh sửa mã và nhấp vào Chạy.

Trên trang Lambda tiếp theo, hãy chỉnh sửa mã và nhấn Chạy.

Bước 4) Kiểm tra đầu ra

Bạn sẽ thấy kết quả.

Cách sử dụng AWS Lambda

AWS Lambda VS AWS EC2

Dưới đây là một số điểm khác biệt chính giữa AWS Lambda và... EC2.

Thông số Kỹ thuật AWS Lambda AWS EC2
Định nghĩa AWS Lambda là Nền tảng dưới dạng dịch vụ (PaaS). Nó giúp bạn chạy và thực thi mã phụ trợ của bạn. AWS EC2 là một dịch vụ cơ sở hạ tầng (IaaS). Nó cung cấp các tài nguyên điện toán ảo hóa.
Linh hoạt Không cung cấp bất kỳ sự linh hoạt nào để đăng nhập vào các phiên bản điện toán. Nó cho phép bạn chọn hệ điều hành hoặc môi trường chạy ngôn ngữ tùy chỉnh. Cung cấp sự linh hoạt để lựa chọn nhiều phiên bản khác nhau, hệ điều hành tùy chỉnh, bản vá bảo mật, mạng, v.v.
Quá trình cài đặt Bạn cần chọn môi trường mà bạn muốn chạy mã và đẩy mã đó lên AWS Lambda. Lần đầu tiên trong EC2, bạn phải chọn hệ điều hành và cài đặt tất cả phần mềm cần thiết, sau đó đẩy mã của bạn vào EC2.
Các hạn chế về môi trường Nó chỉ hỗ trợ một vài ngôn ngữ. Không có hạn chế về môi trường.

AWS Lambda so với AWS Elastic Beanstalk

Dưới đây là một số điểm khác biệt chính giữa AWS Lambda và Elastic. Beanstalk.

Thông số Kỹ thuật AWS đàn hồi Beanstalk AWS Lambda
Nhiệm vụ chính Triển khai và quản lý ứng dụng trên Đám mây AWS mà không cần lo lắng về cơ sở hạ tầng chạy các ứng dụng đó. AWS Lambda được sử dụng để chạy và thực thi mã back-end của bạn. Bạn không thể sử dụng nó để triển khai ứng dụng.
Lựa chọn tài nguyên AWS Nó cho phép bạn tự do lựa chọn các tài nguyên AWS; ví dụ, bạn có thể chọn một phiên bản EC2 tối ưu nhất theo ứng dụng của mình. Bạn không thể chọn các tài nguyên AWS, chẳng hạn như loại phiên bản EC2; Lambda cung cấp các tài nguyên dựa trên khối lượng công việc của bạn.
Loại hệ thống Nó là một hệ thống trạng thái. Đó là một hệ thống không quốc tịch.

Các trường hợp sử dụng của AWS Lambda

AWS Lambda được sử dụng cho rất nhiều ứng dụng khác nhau, ví dụ như:

  • Giúp bạn với Quy trình ETL
  • Cho phép bạn thực hiện xử lý tệp theo thời gian thực và xử lý luồng thời gian thực
  • Sử dụng để tạo các ứng dụng web
  • Sử dụng trong Amazon các sản phẩm như Alexa Chatbots và Amazon Tiếng vang/Alexa
  • Xử lý dữ liệu (phân tích phát trực tuyến theo thời gian thực)
  • Sao lưu tự động các tác vụ hàng ngày
  • Hệ thống phụ trợ có khả năng mở rộng (ứng dụng di động, thiết bị IoT)
  • Giúp bạn thực thi logic phụ trợ phía máy chủ
  • Cho phép bạn lọc và chuyển đổi dữ liệu.

Các phương pháp thực hành tốt nhất về hàm Lambda

Dưới đây là một số phương pháp thực hành tốt nhất khi sử dụng hàm AWS Lambda:

  • Sử dụng đúng “thời gian chờ”.
  • Hãy tận dụng chức năng lưu trữ cục bộ với dung lượng 500MB trong thư mục /temp.
  • Giảm thiểu việc sử dụng mã khởi động không liên quan trực tiếp đến việc xử lý sự kiện hiện tại.
  • Bạn nên sử dụng tính năng giám sát CloudWatch tích hợp sẵn cho các hàm Lambda của mình để xem và tối ưu hóa độ trễ yêu cầu.

Khi nào không nên sử dụng AWS Lambda

Sau đây là những trường hợp mà Lambda chắc chắn không phải là lựa chọn lý tưởng:

  • Không nên sử dụng AWS Lambda cho các gói phần mềm hoặc ứng dụng phụ thuộc vào việc gọi các hàm cơ bản. Windows RPC.
  • Nếu nó được sử dụng cho các ứng dụng phần mềm tùy chỉnh có thỏa thuận cấp phép, chẳng hạn như xử lý tài liệu MS-Office, Oracle cơ sở dữ liệu, v.v.
  • Không nên sử dụng AWS Lambda cho các quy trình phần cứng tùy chỉnh như tăng tốc GPU và ưu tiên phần cứng.

Ưu điểm của việc sử dụng AWS Lambda

Dưới đây là những ưu điểm/lợi ích của việc sử dụng AWS Lambda:

  • AWS Lambda là một công cụ rất linh hoạt.
  • Nó giúp bạn cấp quyền truy cập vào các tài nguyên, bao gồm cả VPC.
  • Tác giả trực tiếp với WYSIWBiên tập viên YG trong bảng điều khiển.
  • Bạn có thể sử dụng nó như một plugin cho Eclipse và Visual Studio.
  • Vì đây là kiến ​​trúc không máy chủ, bạn không cần phải lo lắng về việc quản lý hoặc cấp phát máy chủ.
  • Bạn không cần phải thiết lập bất kỳ Máy ảo.
  • Giúp các nhà phát triển chạy và thực thi phản hồi của mã đối với các sự kiện mà không cần xây dựng bất kỳ cơ sở hạ tầng nào.
  • Bạn chỉ cần trả tiền cho thời gian tính toán, chỉ khi mã của bạn được chạy.
  • Bạn có thể theo dõi hiệu suất mã của mình trong thời gian thực thông qua CloudWatch.
  • Nó cho phép bạn chạy mã của mình mà không cần thiết lập hoặc quản lý bất kỳ máy chủ nào khác.
  • Giúp bạn chỉ thực thi mã khi cần thiết.
  • Bạn có thể tự động mở rộng quy mô để xử lý một vài yêu cầu mỗi ngày và thậm chí hỗ trợ hơn hàng nghìn yêu cầu mỗi giây.
  • AWS Lambda có thể được cấu hình với sự trợ giúp của bộ tính giờ sự kiện bên ngoài để thực hiện các tác vụ đã lên lịch.
  • Hàm Lambda trong AWS cần được cấu hình với các sự kiện và bộ hẹn giờ bên ngoài để có thể sử dụng cho việc lập lịch.
  • Hàm Lambda không có trạng thái nên có thể mở rộng quy mô nhanh chóng.
  • AWS Lambda rất nhanh nên sẽ thực thi mã của bạn trong vòng một phần nghìn giây.

Hạn chế của AWS Lambda

Dưới đây là những nhược điểm/nhược điểm khi sử dụng AWS Lambda:

  • Công cụ AWS Lambda không phù hợp với các dự án nhỏ.
  • AWS Lambda hoàn toàn dựa vào cơ sở hạ tầng của AWS, vì vậy bạn không thể cài đặt thêm bất kỳ phần mềm nào nếu mã của bạn yêu cầu.
  • Việc thực thi đồng thời có giới hạn mặc định là 1,000 cho mỗi Khu vực, và giới hạn này có thể được tăng lên theo yêu cầu.
  • Dung lượng bộ nhớ của nó có thể dao động từ 128 MB đến 10,240 MB.
  • Yêu cầu sự kiện không được vượt quá 128 KB.
  • Các hàm Lambda giúp bạn chỉ ghi nhật ký của chúng trong CloudWatch. Đây là công cụ duy nhất cho phép bạn giám sát hoặc khắc phục sự cố các chức năng của mình.
  • Thời gian chờ thực thi mã của nó được giới hạn ở mức 15 phút.

Câu Hỏi Thường Gặp

AWS Lambda hỗ trợ Node.js một cách tự nhiên. Python, JavaGo, C#, PowerShell và Ruby. API thời gian chạy và hỗ trợ ảnh container cho phép bạn chạy hầu hết mọi ngôn ngữ khác, vì vậy các nhóm hiếm khi bị giới hạn bởi ngăn xếp ngôn ngữ ưa thích của họ.

AWS Lambda cung cấp gói miễn phí vĩnh viễn với một triệu yêu cầu và 400,000 GB-giây tính toán mỗi tháng. Vượt quá giới hạn đó, bạn chỉ phải trả tiền cho các yêu cầu và thời gian tính toán mà mã của bạn thực sự sử dụng, được tính theo mili giây.

Khởi động nguội là độ trễ ngắn khi Lambda khởi tạo môi trường thực thi mới cho một hàm đã không hoạt động. Bạn có thể giảm độ trễ này bằng cách sử dụng khả năng xử lý đồng thời được cấp phát, các gói nhỏ hơn hoặc SnapStart. Java chức năng.

Đúng vậy. Ngoài việc tải lên tệp lưu trữ ZIP, Lambda cho phép bạn đóng gói một hàm dưới dạng ảnh container có dung lượng lên đến 10 GB. Điều này phù hợp với các thư viện phụ thuộc lớn và thư viện học máy trong khi vẫn giữ được dung lượng tối đa.ping Mô hình thực thi không máy chủ, hướng sự kiện tương tự.

Lambda chạy các hàm ngắn, hướng sự kiện với khả năng tự động mở rộng quy mô và tính phí theo từng mili giây. AWS Fargate chạy các khối lượng công việc container dài hơn mà không cần quản lý máy chủ. Chọn Lambda để phản hồi sự kiện nhanh chóng và Fargate cho các tác vụ container chạy dài, ổn định.

Đúng vậy. Lambda thường hỗ trợ các ứng dụng AI bằng cách thực hiện suy luận đơn giản và điều phối các cuộc gọi đến các dịch vụ như... Amazon Bedrock và SageMaker. Hỗ trợ ảnh container giúp đóng gói các thư viện học máy, trong khi Lambda xử lý việc mở rộng quy mô của quy trình AI tạo sinh.

Vâng. Trợ lý GitHub viết các hàm xử lý từ một bình luận hoặc tên, trong khi Amazon Q Developer bổ sung tính năng hỗ trợ tương thích với AWS cho các chính sách IAM, CloudFormation và các lệnh gọi SDK, giúp tăng tốc quá trình phát triển điện toán phi máy chủ.

Cấp cho mỗi chức năng một vai trò IAM có quyền hạn tối thiểu, lưu trữ các bí mật trong các biến môi trường được mã hóa hoặc Trình quản lý bí mật, và đặt các chức năng nhạy cảm bên trong VPC. CloudWatch và CloudTrail sau đó sẽ ghi lại hoạt động để giám sát và kiểm toán.

Tóm tắt bài viết này với: