Các tính năng của AWS Lambda

Tại sao nên chọn AWS Lambda?

AWS Lambda là dịch vụ điện toán phi máy chủ có chức năng chạy mã của bạn để phản hồi các sự kiện và tự động quản lý tài nguyên điện toán chạy nền cho bạn. Những sự kiện này có thể bao gồm các thay đổi về trạng thái hoặc cập nhật, ví dụ như người dùng cho một mặt hàng vào giỏ hàng trên trang web thương mại điện tử. Bạn có thể sử dụng AWS Lambda để mở rộng các dịch vụ AWS khác bằng logic tùy chỉnh hoặc tạo các dịch vụ backend của riêng bạn, những dịch vụ này hoạt động theo quy mô, hiệu năng và mức bảo mật của AWS. AWS Lambda tự động chạy mã để phản hồi nhiều sự kiện, ví dụ như yêu cầu HTTP thông qua Cổng API Amazon, sửa đổi đối tượng trong các vùng lưu trữ của Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), cập nhật bảng trong Amazon DynamoDB và chuyển đổi trạng thái trong AWS Step Functions.

Lambda chạy mã của bạn trên cơ sở hạ tầng điện toán có độ sẵn sàng cao và thực hiện tất cả các tác vụ quản trị tài nguyên điện toán của bạn. Việc này bao gồm cả bảo trì máy chủ và hệ điều hành, cung cấp công suất và tự động thay đổi quy mô, triển khai mã và bản vá bảo mật cũng như giám sát và ghi nhật ký mã. Tất cả những gì bạn cần làm chỉ là cung cấp mã.

Tính năng chính của sản phẩm

AWS Lambda đem đến cho bạn khả năng bổ sung logic tùy chỉnh vào các tài nguyên AWS như vùng lưu trữ của Amazon S3 và bảng biểu của Amazon DynamoDB, vì vậy, bạn có thể dễ dàng áp dụng điện toán vào dữ liệu ngay khi dữ liệu đi vào hoặc di chuyển qua đám mây.

Việc bắt đầu sử dụng AWS Lambda rất dễ dàng. Trước hết, hãy tạo hàm bằng cách tải mã của bạn lên (hoặc tạo mã ngay từ bảng điều khiển Lambda) rồi chọn bộ nhớ, khoảng thời gian chờ và vai trò của AWS Identity and Access Management (IAM). Sau đó, hãy chỉ định tài nguyên AWS để kích hoạt hàm, đó có thể là vùng lưu trữ của Amazon S3, bảng biểu của Amazon DynamoDB hay luồng của Amazon Kinesis. Khi tài nguyên thay đổi, Lambda sẽ chạy hàm của bạn, khởi chạy cũng như quản lý tài nguyên điện toán cần thiết để giúp bạn bắt kịp diễn tiến của các yêu cầu đến.

Bạn có thể sử dụng AWS Lambda để tạo các dịch vụ backend mới cho ứng dụng được kích hoạt theo nhu cầu bằng cách sử dụng giao diện lập trình ứng dụng (API) Lambda hoặc điểm cuối API tùy chỉnh được xây dựng bằng Amazon API Gateway. Lambda xử lý các sự kiện tùy chỉnh thay vì cung cấp các sự kiện này trên ứng dụng khách, nhờ đó giúp bạn tránh được sự khác biệt về nền tảng của ứng dụng khách, giảm tiêu hao pin và dễ dàng thực hiện cập nhật hơn.

Với AWS Lambda, bạn sẽ không phải học ngôn ngữ, cách sử dụng công cụ hay khung mới. Bạn có thể sử dụng bất kỳ thư viện nào của bên thứ ba, kể cả thư viện thuần. Bạn cũng có thể đóng gói mã bất kỳ (khung, SDK, thư viện, v.v.) dưới dạng Lớp Lambda, đồng thời dễ dàng quản lý cũng như chia sẻ những mã này trên nhiều hàm. Về bản chất, Lambda hỗ trợ mã Java, Go, PowerShell, Node.js, C#, Python và Ruby cũng như cung cấp API Runtime, cho phép bạn sử dụng bất kỳ ngôn ngữ lập trình nào khác để khởi tạo các hàm của mình.

AWS Lambda quản lý toàn bộ cơ sở hạ tầng để chạy mã của bạn trên cơ sở hạ tầng có độ sẵn sàng và khả năng chịu lỗi cao, cho bạn thêm thời gian để tập trung phát triển các dịch vụ backend nổi bật của mình. Với Lambda, bạn sẽ không bao giờ phải cập nhật hệ điều hành (OS) chạy nền khi bản vá mới được phát hành hoặc lo lắng về việc thay đổi kích cỡ hay bổ sung máy chủ mới khi nhu cầu sử dụng của bạn tăng lên. AWS Lambda sẽ triển khai mã của bạn một cách liền mạch, thực hiện tất cả các hoạt động quản trị, bảo trì và vá lỗi bảo mật, đồng thời cung cấp chức năng ghi nhật ký và giám sát tích hợp sẵn thông qua Amazon CloudWatch.

AWS Lambda duy trì công suất điện toán trên nhiều Vùng sẵn sàng (AZ) ở từng Khu vực AWS để giúp bảo vệ mã của bạn khi máy hoặc cơ sở trung tâm dữ liệu riêng lẻ gặp sự cố. Cả AWS Lambda cũng như hàm chạy trên dịch vụ đều mang lại hiệu năng hoạt động có thể dự đoán được và đáng tin cậy. AWS Lambda được thiết kế để có thể mang đến độ sẵn sàng cao cho bản thân dịch vụ cũng như các hàm chạy trên dịch vụ. Không có khung thời gian bảo trì hay thời gian ngừng hoạt động theo lịch.

AWS Lambda hỗ trợ đóng gói và triển khai các hàm dưới dạng hình ảnh bộ chứa, giúp khách hàng dễ dàng xây dựng các ứng dụng dựa trên Lambda bằng cách sử dụng công cụ hình ảnh bộ chứa, luồng công việc và phần phụ thuộc quen thuộc. Khách hàng cũng được hưởng lợi từ sự đơn giản trong hoạt động, khả năng tự động thay đổi quy mô của Lambda với thời gian khởi động tính bằng mili giây, độ sẵn sàng cao, mô hình thanh toán theo mức sử dụng, tích hợp gốc với hơn 200 dịch vụ AWS và ứng dụng phần mềm dưới dạng dịch vụ (SaaS). Khách hàng doanh nghiệp có thể sử dụng một bộ công cụ nhất quán với cả ứng dụng Lambda và ứng dụng nằm trong bộ chứa của họ, giúp đơn giản hóa các yêu cầu quản trị trung tâm, ví dụ như quét bảo mật và ký vào hình ảnh.

AWS Lambda chỉ gọi mã của bạn khi cần và tự động thay đổi quy mô để hỗ trợ mức độ của các yêu cầu đến mà không cần bất kỳ cấu hình thủ công nào. Số lượng yêu cầu mà mã của bạn có thể xử lý là vô hạn. AWS Lambda thường bắt đầu chạy mã của bạn trong vòng vài mili giây của một sự kiện. Vì Lambda tự động thay đổi quy mô nên hiệu năng luôn duy trì ở mức cao khi tần suất các sự kiện tăng lên. Vì mã của bạn không có trạng thái nên nếu cần bao nhiêu phiên bản, Lambda có thể khởi động bấy nhiêu mà không mất nhiều thời gian để triển khai cũng như chậm trễ trong việc định cấu hình.

Sử dụng Proxy cho Amazon RDS để tận dụng các nhóm kết nối được quản lý toàn phần cho cơ sở dữ liệu quan hệ. RDS Proxy quản lý hàng nghìn kết nối đồng thời với cơ sở dữ liệu quan hệ một cách hiệu quả, giúp dễ dàng xây dựng các ứng dụng phi máy chủ, dựa trên Lambda và tương tác với cơ sở dữ liệu quan hệ một cách bảo mật và có quy mô cực kỳ linh hoạt. Hiện tại, RDS Proxy hỗ trợ MySQL và Aurora. Bạn có thể sử dụng RDS Proxy cho các ứng dụng phi máy chủ thông qua bảng điều khiển Amazon RDS hoặc bảng điều khiển AWS Lambda.

Provisioned Concurrency (Tính đồng thời được cung cấp) cho phép bạn kiểm soát tốt hơn hiệu năng của các ứng dụng phi máy chủ. Khi được bật, Provisioned Concurrency sẽ đảm bảo tính sẵn sàng cực cao và duy trì khởi tạo để phản hồi từ 10 đến 99 mili giây cho các hàm của bạn. Provisioned Concurrency là tính năng lý tưởng với bất kỳ ứng dụng AWS Lambda nào cần kiểm soát tốt hơn thời gian hàm khởi chạy. Dễ dàng cấu hình và điều chỉnh tính đồng thời mà ứng dụng của bạn cần. Mở rộng, thu hẹp quy mô hoặc tắt hoàn toàn tùy theo nhu cầu. Tận dụng Provisioned Concurrency để đạt được hiệu năng nhất quán cho các ứng dụng đòi hỏi cao về độ trễ mà không cần thay đổi mã của bạn hoặc quản lý tài nguyên điện toán.

Với Amazon Elastic File System (EFS) for AWS Lambda, bạn có thể đọc, ghi và lưu trữ khối lượng dữ liệu lớn một cách an toàn với độ trễ thấp, ở mọi quy mô. Bạn không cần phải ghi mã và tải dữ liệu về kho lưu trữ tạm thời để xử lý. Điều này giúp tiết kiệm thời gian và đơn giản hóa mã, vì vậy, bạn có thể tập trung vào logic kinh doanh của mình. EFS for Lambda là dịch vụ lý tưởng cho nhiều trường hợp sử dụng, bao gồm xử lý hoặc sao lưu khối lượng dữ liệu lớn cũng như tải tệp hoặc mô hình tham chiếu lớn. Bạn cũng có thể chia sẻ tệp giữa các phiên bản phi máy chủ hoặc ứng dụng dựa trên bộ chứa và thậm chí chạy cả suy luận máy học (ML) bằng EFS for AWS Lambda.

Với Lambda@Edge, AWS Lambda có thể chạy mã của bạn tại nhiều vị trí của AWS trên toàn cầu để phản hồi các sự kiện của Amazon CloudFront, chẳng hạn như yêu cầu nội dung đến hoặc từ trình xem và máy chủ gốc. Việc này giúp bạn dễ dàng cung cấp nội dung phong phú và có độ cá nhân hóa cao hơn, với độ trễ thấp hơn cho người dùng cuối. 

Xây dựng luồng công việc của AWS Step Functions để điều phối nhiều hàm AWS Lambda cho các tác vụ phức tạp hoặc có thời gian chạy dài. Step Functions đem đến cho bạn khả năng xác định các quy trình công việc sẽ kích hoạt bộ hàm Lambda bằng cách sử dụng các bước theo trình tự, song song, phân nhánh và xử lý lỗi. Với Step Functions và Lambda, bạn sẽ có thể xây dựng các tiến trình có trạng thái và có thời gian chạy dài cho ứng dụng và thiết bị backend.

Bộ phát triển phần mềm (SDK) có sẵn trong AWS Lambda tích hợp với AWS Identity and Access Management (IAM) để đảm bảo quyền truy cập mã vào các dịch vụ AWS khác một cách bảo mật. AWS Lambda mặc định chạy mã của bạn trong Amazon Virtual Private Cloud (VPC). Theo tùy chọn, bạn có thể cấu hình quyền truy cập tài nguyên cho AWS Lambda theo VPC của riêng mình để tận dụng các nhóm bảo mật và danh sách kiểm soát truy cập mạng tùy chỉnh. Nhờ đó, hàm Lambda truy cập vào tài nguyên của bạn trong VPC một cách bảo mật. AWS Lambda là dịch vụ tuân thủ SOCHIPAAPCI, và ISO. Để xem thông tin mới nhất về chứng nhận và khả năng sẵn sàng tuân thủ của Lambda, vui lòng xem toàn bộ dịch vụ trong phạm vi.

Code Signing (Ký mã) cho AWS Lambda cho phép bạn xác minh rằng chỉ mã chưa thay đổi do các nhà phát triển đã được phê duyệt phát hành mới được triển khai trong hàm Lambda của bạn. Bạn chỉ cần tạo các thành phần lạ của mã được ký kỹ thuật số và định cấu hình các hàm Lambda cần xác minh các chữ ký khi triển khai. Từ đó, tốc độ và sự linh hoạt trong quá trình phát triển ứng dụng tăng lên, ngay cả trong các nhóm lớn mà vẫn tuân theo các tiêu chuẩn bảo mật cao.

Với AWS Lambda, bạn trả phí cho thời lượng thực thi thay vì đơn vị máy chủ. Khi sử dụng hàm Lambda, bạn chỉ phải trả tiền cho các yêu cầu được phân phối cũng như thời gian tính toán cần thiết để chạy mã của bạn. Chi phí được tính theo gia số một mili giây, cho phép tự động thay đổi quy mô một cách dễ dàng và tiết kiệm chi phí từ một vài yêu cầu mỗi ngày đến hàng nghìn yêu cầu mỗi giây. Với Provisioned Concurrency, bạn thanh toán cho dung lượng và khoảng thời gian mà bạn cấu hình xử lý đồng thời. Khi bật Provisioned Concurrency, đồng thời bạn thực thi hàm của mình, bạn cũng thanh toán cho các yêu cầu và khoảng thời gian thực thi. Để tìm hiểu thêm về việc định giá, vui lòng truy cập trang Định giá AWS Lambda.

Bạn chỉ cần chọn dung lượng bộ nhớ mà bạn muốn phân bổ cho hàm rồi AWS Lambda sẽ giúp bạn phân bổ công suất CPU, băng thông mạng và thao tác đọc/ghi (I/O) trên ổ cứng.

Các tiện ích mở rộng của AWS Lambda cho phép bạn dễ dàng tích hợp với các công cụ yêu thích của mình để giám sát, quan sát, bảo mật và quản trị. Lambda gọi hàm của bạn trong một môi trường thực thi, môi trường này cung cấp thời gian chạy bảo mật và biệt lập để thực thi mã hàm của bạn. Các tiện ích mở rộng của Lambda chạy trong môi trường thực thi của Lambda cùng với mã hàm của bạn. Các tiện ích mở rộng của Lambda có thể sử dụng API phép đo từ xa của AWS Lambda để thu thập thông tin chẩn đoán chi tiết, chẳng hạn như bản ghi, chỉ số và dấu vết, trực tiếp từ Lambda rồi gửi đến điểm đích mà bạn chọn. Bạn cũng có thể sử dụng các tiện ích mở rộng để tích hợp các tác tử bảo mật ưu tiên với Lambda, tất cả đều không phải trả phí vận hành và có tác động tối thiểu đến hiệu năng các hàm của bạn.

Các hàm AWS Lambda chạy trên Graviton2, sử dụng kiến trúc bộ xử lý dựa trên Arm do AWS thiết kế, mang lại hiệu quả chi phí tốt hơn tới 34% so với các hàm chạy trên bộ xử lý x86. Giải pháp này áp dụng cho nhiều loại khối lượng công việc phi máy chủ, chẳng hạn như phần phụ trợ, dữ liệu và xử lý phương tiện của web và thiết bị di động. Với độ trễ thấp hơn, hiệu suất cao hơn tới 19%, chi phí thấp hơn 20% và hiệu quả năng lượng cao nhất hiện có tại AWS, bạn có thể sử dụng các hàm của Graviton2 để hỗ trợ những ứng dụng phi máy chủ tối quan trọng.

AWS Lambda cung cấp chức năng giám sát tích hợp bằng cách tự động thu thập và gửi bản ghi, số liệu và dấu vết đến các dịch vụ giám sát và quan sát AWS như Amazon CloudWatch và AWS X-Ray. Lambda cũng cung cấp các chức năng giám sát nâng cao như Live Tail cho phép bạn xem và phân tích bản ghi theo thời gian thực, các biện pháp kiểm soát quy trình tạo bản ghi nâng cao cho phép bạn tạo bản ghi theo cách tự nhiên ở định dạng có cấu trúc JSON, kiểm soát việc lọc cấp độ bản ghi mà không cần thay đổi mã và tùy chỉnh nhóm bản ghi CloudWatch mà Lambda gửi bản ghi tới. Với Tín hiệu về ứng dụng, Lambda cung cấp công cụ giám sát hiệu năng ứng dụng (APM) sẵn có để theo dõi thông lượng, mức độ sẵn sàng, độ trễ và lỗi trong các ứng dụng phi máy chủ. Thông tin chuyên sâu về Lambda tự động nắm bắt các số liệu chi tiết bao gồm bộ nhớ, CPU và mức sử dụng mạng, cung cấp thông tin chi tiết sâu hơn về hiệu năng của hàm Lambda. Ngoài ra, Lambda hỗ trợ tích hợp liền mạch với các công cụ giám sát của bên thứ ba thông qua phần mở rộng Lambda, giúp bạn dễ dàng sử dụng các công cụ ưa thích để giám sát và khắc phục sự cố trên các ứng dụng phi máy chủ.