Chuyển đến nội dung chính

AWS Lambda

Câu hỏi thường gặp về AWS Lambda

Thông tin chung

Mở tất cả

    Vui lòng xem tài liệu của chúng tôi để biết danh sách đầy đủ các nguồn sự kiện.

    Về bản chất, AWS Lambda hỗ trợ gốc đối với mã Java, Go, PowerShell, Node.js, C#, Python và Ruby, cũng như cung cấp Runtime API cho phép bạn sử dụng bất kỳ ngôn ngữ lập trình nào khác để lập trình các hàm của mình. Vui lòng đọc tài liệu hướng dẫn sử dụng Node.js, Python, Java, Ruby, C#, GoPowerShell.

    Mỗi hàm Lambda của AWS chạy trong một môi trường cô lập riêng, với các tài nguyên và chế độ xem hệ thống tệp riêng. AWS Lambda sử dụng các kỹ thuật giống như Amazon EC2 để cung cấp khả năng bảo mật và tách biệt ở cấp độ cơ sở hạ tầng và cấp độ thực thi. Để tìm hiểu thêm, hãy truy cập tài liệu.

    AWS Lambda lưu mã trên Amazon S3 và mã hóa mã khi lưu trữ. AWS Lambda thực hiện các hoạt động kiểm tra độ toàn vẹn bổ sung khi mã đang được sử dụng. Đối với thông tin nhạy cảm, như mật khẩu cơ sở dữ liệu, bạn nên sử dụng mã hóa phía máy khách thông qua Dịch vụ quản lý khóa của AWS và lưu các giá trị thu được dưới dạng bản mã trong biến môi trường. Bạn sẽ cần sử dụng logic trong mã hàm Lambda của AWS để giải mã các giá trị này. Để tìm hiểu thêm, hãy truy cập tài liệu.

    Việc duy trì hàm không có trạng thái cho phép AWS Lambda khởi chạy nhanh chóng số lượng bản sao hàm cần thiết để điều chỉnh quy mô theo tốc độ của các sự kiện đến. Mặc dù mô hình lập trình của AWS Lambda là không có trạng thái, mã của bạn vẫn có thể truy cập dữ liệu có trạng thái bằng cách gọi các dịch vụ web khác, như Amazon S3 hoặc Amazon DynamoDB.

    Có. Bạn có thể dễ dàng tạo và chỉnh sửa các biến môi trường từ Bảng điều khiển, CLI hay các SDK của AWS Lambda. Để tìm hiểu thêm về các biến môi trường, hãy xem tài liệu.

    Đối với thông tin nhạy cảm, như mật khẩu cơ sở dữ liệu, bạn nên sử dụng mã hóa phía máy khách thông qua Dịch vụ quản lý khóa của AWS và lưu các giá trị thu được dưới dạng bản mã trong biến môi trường. Bạn sẽ cần sử dụng logic trong mã hàm Lambda của AWS để giải mã các giá trị này.

    Có, bạn có thể đóng gói mã bất kỳ (khung, SDK, thư viện, v.v.) dưới dạng Lớp Lambda và quản lý cũng như chia sẻ chúng dễ dàng trên nhiều hàm.

    AWS Lambda tự động giám sát các hàm Lambda thay bạn, báo cáo các số liệu theo thời gian thực qua Amazon CloudWatch, bao gồm tổng số yêu cầu, mức sử dụng đồng thời ở cấp độ tài khoản và cấp độ hàm, độ trễ, tỷ lệ lỗi và số yêu cầu được điều tiết. Bạn có thể xem số liệu thống kê cho từng hàm Lambda thông qua bảng điều khiển Amazon CloudWatch hoặc thông qua bảng điều khiển AWS Lambda. Bạn cũng có thể gọi API giám sát từ bên thứ ba trong hàm Lambda của mình.
     

    Hãy truy cập vào mục Khắc phục sự cố về chỉ số CloudWatch để tìm hiểu thêm. Phí tiêu chuẩn đối với AWS Lambda áp dụng cho việc sử dụng chỉ số tích hợp sẵn của Lambda.

    Trong mô hình tài nguyên AWS Lambda, bạn chọn lượng bộ nhớ mong muốn cho hàm của mình và được phân bổ công suất CPU tương ứng cũng như các tài nguyên khác. Ví dụ: khi chọn 256MB bộ nhớ, hàm Lambda của bạn sẽ nhận được công suất CPU bằng khoảng hai lần so với khi yêu cầu 128MB bộ nhớ và bằng một nửa công suất CPU so với khi chọn 512MB bộ nhớ. Để tìm hiểu thêm, hãy tham khảo tài liệu Cấu hình hàm của chúng tôi.

    Bạn có thể đặt bộ nhớ của mình từ 128 MB đến 10.240 MB.

    Hàm Lambda của AWS có thể được cấu hình để chạy tối đa 15 phút mỗi lần thực thi. Bạn có thể đặt thời gian chờ thành bất kỳ giá trị nào từ 1 giây đến 15 phút.

    Giá của AWS Lambda được tính theo mức sử dụng. Vui lòng xem trang mức giá của AWS Lambda để biết chi tiết.

    Có. Theo mặc định, mỗi hàm AWS Lambda có một phiên bản mã mới nhất, duy nhất. Các máy khách sử dụng hàm Lambda của bạn có thể gọi một phiên bản cụ thể hoặc nhận một bản thực thi mới nhất. Vui lòng đọc tài liệu về lập phiên bản hàm Lambda của chúng tôi.

    AWS Lambda cung cấp các tùy chọn triển khai linh hoạt: đóng gói và triển khai các hàm dưới dạng lưu trữ tệp.zip mà bạn có thể tải lên trực tiếp thông qua bảng điều khiển, CLI hoặc SDK hoặc dưới dạng hình ảnh bộ chứa. Cả hai phương pháp đều cung cấp cùng một môi trường thực thi, khả năng điều chỉnh quy mô và tính đơn giản về vận hành, mang lại cho bạn sự linh hoạt để chọn phương pháp phù hợp nhất với quy trình làm việc của bạn.

Sử dụng AWS Lambda để xử lý các sự kiện AWS

Mở tất cả

    Nguồn sự kiện là một dịch vụ AWS hoặc một ứng dụng do nhà phát triển xây dựng tạo ra các sự kiện kích hoạt chạy một hàm AWS Lambda. Một số dịch vụ công bố các sự kiện này với Lambda bằng cách trực tiếp gọi ra chức năng đám mây (ví dụ: Amazon S3). Lambda cũng có thể thăm dò tài nguyên trong các dịch vụ khác không đẩy sự kiện đến Lambda. Ví dụ: Lambda có thể lấy bản ghi từ luồng Amazon Kinesis hoặc hàng đợi Amazon SQS và thực thi hàm Lambda cho mỗi thông điệp được tìm nạp. Nhiều dịch vụ khác, chẳng hạn như AWS CloudTrail, có thể hoạt động như nguồn sự kiện chỉ bằng cách đăng nhập vào Amazon S3 và dùng thông báo vùng lưu trữ S3 để kích hoạt các hàm Lambda của AWS

    Bạn có thể gọi một hàm Lambda bằng sự kiện tùy chỉnh thông qua API gọi của AWS Lambda. Chỉ chủ sở hữu của hàm hoặc một tài khoản AWS khác được chủ sở hữu cấp quyền mới có thể gọi ra hàm. Hãy truy cập vào mục Hướng dẫn dành cho nhà phát triển về Lambda để tìm hiểu thêm.

    Bạn có thể gọi một hàm Lambda qua HTTPS bằng cách xác định một API RESTful tùy chỉnh bằng Cổng API Amazon. Thao tác này cung cấp cho bạn một điểm cuối cho hàm có thể phản hồi với các lệnh gọi REST như GET, PUT và POST. Đọc thêm về cách sử dụng AWS Lambda với Cổng API Amazon.

AWS Lambda SnapStart

Mở tất cả

    AWS Lambda SnapStart có thể cải thiện hiệu năng khởi động từ vài giây xuống chưa tới một giây đối với các ứng dụng có yêu cầu cao về độ trễ. SnapStart hoạt động bằng cách tạo ảnh chụp nhanh cho trạng thái bộ nhớ (và ổ đĩa) đã khởi tạo cho hàm của bạn và lưu ảnh chụp nhanh đó vào bộ nhớ đệm để giúp truy cập với độ trễ thấp. Khi hàm của bạn được gọi sau đó, Lambda sẽ tiếp tục vận hành môi trường thực thi từ ảnh chụp nhanh đã khởi tạo trước này thay vì khởi tạo chúng lại từ đầu, nhờ đó cải thiện độ trễ khi khởi động. Để có khả năng phục hồi, Lambda duy trì các bản sao của ảnh chụp nhanh trong bộ nhớ đệm và tự động áp dụng các bản cập nhật phần mềm, chẳng hạn như nâng cấp thời gian hoạt động và các bản vá bảo mật cho chúng. Để tìm hiểu thêm, hãy truy cập tài liệu.

    Lambda SnapStart là cấu hình đơn giản ở cấp độ hàm, có thể được cấu hình cho các hàm mới và hiện có bằng cách sử dụng Lambda API, Bảng điều khiển quản lý AWS, Giao diện dòng lệnh (CLI) AWS, AWS SDK, Bộ phát triển đám mây (CDK) AWS, AWS CloudFormation và Mô hình ứng dụng phi máy chủ (SAM) AWS. Khi bạn cấu hình Lambda SnapStart, mọi phiên bản hàm được xuất bản sau đó đều được hưởng lợi nhờ tác dụng cải thiện hiệu suất khởi động mà Lambda SnapStart mang lại. Để tìm hiểu thêm về Lambda SnapStart, hãy xem tài liệu.

    Lambda SnapStart là tính năng tối ưu hóa hiệu năng, giúp các hàm của bạn đạt được thời gian khởi động nhanh hơn bằng cách giảm độ trễ thay đổi phát sinh trong quá trình thực thi mã khởi tạo một lần. Mặc dù làm giảm độ trễ khởi động, Lambda SnapStart là công cụ tối ưu hóa bằng nỗ lực tốt nhất và không đảm bảo loại bỏ khởi động nguội. Nếu ứng dụng của bạn có các yêu cầu nghiêm ngặt về độ trễ và cần có thời gian khởi động trên mười mili giây, chúng tôi khuyên bạn nên sử dụng PC.

    Lambda SnapStart hỗ trợ nhiều thời gian hoạt động, bao gồm Java 11 (và mới hơn), Python 3.12 (và mới hơn) và .NET 8 (và mới hơn). Các phiên bản thời gian hoạt động trong tương lai sẽ được hỗ trợ sau khi chúng được phát hành. Để biết tất cả các thời gian hoạt động mà Lambda hỗ trợ, vui lòng tham khảo tài liệu thời gian hoạt động Lambda.

    Không. Không thể kích hoạt cả Lambda SnapStart và PC đồng thời trên cùng một hàm.

    Có. Bạn có thể định cấu hình hàm Lambda SnapStart để truy cập các tài nguyên trong đám mây riêng ảo (VPC). Để biết thêm thông tin về cách định cấu hình hàm của bạn với VPC, vui lòng tham khảo tài liệu về Lambda.

    Có, bạn sẽ bị tính phí cho việc lưu trữ ảnh chụp nhanh trong khoảng thời gian mà phiên bản hàm của bạn hoạt động, trong tối thiểu 3 giờ và mỗi mili giây sau đó. Mức giá phụ thuộc vào dung lượng bộ nhớ bạn phân bổ cho hàm của mình. Bạn cũng bị tính phí mỗi khi Lambda tiếp tục vận hành môi trường thực thi bằng cách khôi phục ảnh chụp nhanh của bạn, với giá tùy thuộc vào lượng bộ nhớ bạn phân bổ cho hàm của mình. Để tìm hiểu thêm về mức giá SnapStart, vui lòng truy cập trang Mức giá AWS Lambda.

    Mức giá SnapStart không áp dụng cho các thời gian hoạt động được quản lý bởi Java được hỗ trợ, vốn chỉ có thể lưu trữ ảnh chụp nhanh trong tối đa 14 ngày.

Tính đồng thời được cung cấp

Mở tất cả

    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 kích hoạt, Tính đồng thời được cung cấp sẽ đảm bảo tính sẵn sàng cực cao và duy trì khởi tạo cho các hàm của bạn nhằm đáp ứng công việc trong vài mili giây.

    Bạn có thể cấu hình tính đồng thời trên hàm của bạn thông qua Bảng điều khiển quản lý AWS, Lambda API, AWS CLI và AWS CloudFormation. Cách dễ nhất để hưởng lợi từ Tính đồng thời được cung cấp là sử dụng AWS Auto Scaling. Bạn có thể sử dụng Auto Scaling của ứng dụng để cấu hình lịch hoặc thiết lập để Auto Scaling tự động điều chỉnh mức độ Tính đồng thời được cung cấp theo thời gian thực khi nhu cầu thay đổi. Để tìm hiểu thêm về Tính đồng thời được cung cấp, hãy xem tài liệu.

    Tính đồng thời được cung cấp bổ sung một thứ nguyên giá mới để khởi tạo hàm, đó là thứ nguyên “Tính đồng thời được cung cấp“. Khi bật tính năng này, bạn sẽ trả cho dung lượng xử lý đồng thời mà bạn cấu hình và cho khoảng thời gian bạn cấu hình nó. Nếu hàm của bạn thực thi trong khi Tính đồng thời được cung cấp được cấu hình cho hàm đó, bạn cũng sẽ trả tiền cho Yêu cầu và Thời lượng thực thi. Để tìm hiểu thêm về mức giá của tính năng Tính đồng thời được cung cấp, hãy xem mục Mức giá của AWS Lambda.

    Tính đồng thời được cung cấp là tính năng lý tưởng khi xây dựng các ứng dụng đòi hỏi cao về độ trễ, như backend web hoặc thiết bị di động, API được gọi đồng bộ và các vi dịch vụ tương tác. Bạn có thể dễ dàng cấu hình mức dung lượng đồng thời thích hợp theo nhu cầu duy nhất của ứng dụng của bạn. Bạn có thể tăng mức đồng thời trong thời gian có nhu cầu cao và giảm hoặc tắt mức đồng thời hoàn toàn khi nhu cầu giảm.

Lambda@Edge

Mở tất cả

    Lambda@Edge cho phép bạn chạy mã tại nhiều vị trí của AWS trên toàn cầu mà không cần cung cấp hay quản lý máy chủ, phản hồi người dùng cuối với độ trễ mạng thấp nhất. Bạn chỉ cần tải mã Node.js hoặc Python lên AWS Lambda và cấu hình để hàm được kích hoạt khi phản hồi lại những yêu cầu của Amazon CloudFront (nói cách khác, khi có một yêu cầu của người xem, khi yêu cầu được chuyển tiếp đến hoặc nhận lại từ nguồn, hoặc ngay trước khi phản hồi lại tới người dùng cuối). Sau đó, mã này sẽ sẵn sàng để thực thi tại nhiều vị trí của AWS trên toàn cầu khi nhận được yêu cầu nội dung và mã sẽ mở rộng quy mô theo khối lượng yêu cầu của CloudFront trên toàn cầu. Tìm hiểu thêm trong tài liệu của chúng tôi.

    Để sử dụng Lambda@Edge, bạn chỉ cần tải mã lên AWS Lambda và liên kết một phiên bản hàm cần kích hoạt khi phản hồi các yêu cầu của Amazon CloudFront. Mã của bạn phải thỏa mãn các giới hạn dịch vụ của Lambda@Edge. Tại thời điểm này, Lambda@Edge hỗ trợ Node.js và Python cho việc gọi hàm toàn cầu bởi các sự kiện CloudFront. Tìm hiểu thêm trong tài liệu của chúng tôi.

    Lambda@Edge được tối ưu hóa cho những trường hợp sử dụng đòi hỏi khắt khe về độ trễ, trong đó trình xem cuối của bạn phân bố khắp toàn cầu. Tất cả thông tin bạn cần để ra quyết định sẽ có tại biên CloudFront, trong phạm vi của hàm và yêu cầu. Điều này đồng nghĩa rằng, các trường hợp sử dụng mà bạn muốn đưa ra quyết định về cách phục vụ nội dung dựa trên đặc tính người dùng (ví dụ: vị trí, thiết bị khách, v.v.) giờ đây có thể được thực thi và phục vụ cận kề với người dùng mà không cần phải định tuyến ngược trở lại một máy chủ tập trung.

    Bạn có thể liên kết các hàm Lambda hiện có với các sự kiện CloudFront cho việc gọi toàn cục nếu hàm thỏa mãn các yêu cầu và giới hạn dịch vụ của Lambda@Edge. Đọc thêm ở đây để biết cách cập nhật các thuộc tính hàm của bạn.

Khả năng thay đổi quy mô và độ sẵn sàng

Mở tất cả

    AWS Lambda được thiết kế với khả năng sao chép và dự phòng nhằm mang đến độ sẵn sàng cao cho bản thân dịch vụ và cho các hàm Lambda 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 cho cả hai.

    Có. Khi bạn cập nhật hàm Lambda, sẽ có một khung thời gian ngắn, thường dưới một phút, trong đó các yêu cầu có thể được phục vụ bởi phiên bản cũ hoặc phiên bản mới của hàm.

    Không. AWS Lambda được thiết kế để chạy song song nhiều phiên bản hàm. Tuy nhiên, AWS Lambda có một ngưỡng tiết lưu an toàn mặc định đối với số lượng thao tác thực thi đồng thời trên mỗi tài khoản theo từng khu vực (hãy truy cập vào đây để biết thông tin về giới hạn tiết lưu an toàn mặc định). Bạn cũng có thể kiểm soát số thao tác thực thi đồng thời tối đa đối với từng hàm Lambda của AWS. Bạn có thể sử dụng chức năng này để dự trữ một phần nhỏ giới hạn chạy đồng thời của tài khoản cho các hàm quan trọng hoặc giới hạn mức lưu lượng đối với các tài nguyên hạ nguồn.

    Nếu muốn gửi yêu cầu tăng giới hạn thực thi đồng thời, bạn có thể sử dụng Hạn mức dịch vụ để yêu cầu tăng giới hạn.

    Khi vượt quá giới hạn thực thi đồng thời tối đa, các hàm Lambda của AWS đang được gọi đồng thời sẽ trả về lỗi tiết lưu (mã lỗi 429). Các hàm Lambda đang được gọi đồng không đồng bộ có thể chiếm các phần lưu lượng tăng đột biến chấp nhận được trong khoảng 15-30 phút, sau đó các sự kiện đến sẽ bị từ chối do được tiết lưu. Trong trường hợp hàm Lambda đang được gọi ra để phản hồi với các sự kiện Amazon S3, các sự kiện bị AWS Lambda từ chối có thể được S3 giữ lại và thử lại trong vòng 24 giờ. Sự kiện từ các luồng Amazon Kinesis và các luồng Amazon DynamoDB được thử lại cho đến khi hàm Lambda thành công hoặc dữ liệu hết hạn. Các Luồng Amazon Kinesis và Amazon DynamoDB giữ lại dữ liệu trong vòng 24 giờ.

    Giới hạn thực thi đồng thời tối đa mặc định được áp dụng ở cấp tài khoản. Tuy nhiên, bạn cũng có thể đặt giới hạn cho các hàm riêng lẻ (hãy truy cập vào đây để biết thông tin về Tính đồng thời đặt trước).

    Mỗi hàm Lambda được gọi đồng thời có thể điều chỉnh quy mô với tốc độ lên đến 1000 lần thực thi đồng thời trong mỗi 10 giây. Mặc dù tốc độ điều chỉnh quy mô của Lambda phù hợp với hầu hết các trường hợp sử dụng, đây là lựa chọn cực kỳ lý tưởng cho những dịch vụ có lưu lượng truy cập tăng đột biến có thể dự báo được hoặc không thể đoán trước. Ví dụ: xử lý dữ liệu buộc phải tuân thủ SLA sẽ yêu cầu điều chỉnh quy mô nhanh chóng nhưng có thể dự báo được nhằm đáp ứng nhu cầu xử lý. Tương tự, việc phân phối các bài báo tin tức nóng hổi hoặc chương trình giảm giá siêu tốc có thể đẩy lưu lượng truy cập lên cao đến mức khó đoán trước trong một khoảng thời gian ngắn. Tốc độ điều chỉnh quy mô của Lambda có thể tạo điều kiện thuận lợi cho các trường hợp sử dụng như vậy mà không cần cấu hình hoặc công cụ bổ sung. Ngoài ra, giới hạn điều chỉnh quy mô đồng thời là giới hạn cấp hàm, có nghĩa là mỗi hàm trong tài khoản của bạn điều chỉnh quy mô độc lập với các hàm khác.

    Khi gặp lỗi, các hàm Lambda đang được gọi đồng thời sẽ phản hồi bằng một ngoại lệ. Các hàm exception đang được gọi ra đồng thời sẽ được thử lại ít nhất 3 lần. Sự kiện từ các luồng Amazon Kinesis và các luồng Amazon DynamoDB được thử lại cho đến khi hàm Lambda thành công hoặc dữ liệu hết hạn. Các Luồng Kinesis và DynamoDB giữ lại dữ liệu trong vòng tối thiểu 24 giờ.

    Khi vượt quá chính sách thử lại cho các lệnh gọi không đồng bộ, bạn có thể cấu hình một hàng đợi thông báo không gửi được (DLQ) mà sự kiện sẽ được đặt vào đó; khi không có DLQ nào được cấu hình, sự kiện đó có thể bị từ chối. Khi vượt quá chính sách thử lại đối với các lệnh gọi từ luồng, dữ liệu có thể đã hết hạn và do đó, bị từ chối.

    Bạn có thể cấu hình hàng đợi Amazon SQS hoặc chủ đề Amazon SNS làm hàng đợi thông báo không gửi được .

Bảo mật và kiểm soát truy cập

Mở tất cả

    Bạn cấp quyền cho hàm Lambda truy cập các tài nguyên khác bằng vai trò IAM. AWS Lambda giữ vai trò này khi thực thi hàm Lambda, do đó bạn luôn duy trì được khả năng kiểm soát đầy đủ, bảo mật về chính xác các tài nguyên AWS nào mà hàm có thể sử dụng. Truy cập Thiết lập AWS Lambda để tìm hiểu thêm về vai trò.

    Khi bạn cấu hình một vùng lưu trữ Amazon S3 để gửi thông điệp đến một hàm Lambda của AWS, một quy tắc chính sách tài nguyên sẽ được tạo để cấp quyền truy cập. Hãy tham khảo Hướng dẫn dành cho nhà phát triển về Lambda để tìm hiểu thêm về các chính sách tài nguyên và khả năng kiểm soát truy cập đối với các hàm Lambda.

    Khả năng kiểm soát truy cập được quản lý thông qua vai trò của hàm Lambda. Vai trò mà bạn chỉ định cho hàm Lambda cũng quyết định AWS Lambda có thể thay cho hàm thăm dò (các) tài nguyên nào. Hãy truy cập Hướng dẫn dành cho nhà phát triển về Lambda để tìm hiểu thêm.

    Khả năng kiểm soát truy cập có thể được quản lý thông qua vai trò của hàm Lambda hoặc cài đặt chính sách tài nguyên trên chính hàng đợi. Nếu có cả hai chính sách, quyền nào hạn chế hơn sẽ được áp dụng.

    Bạn có thể cho phép hàm Lambda truy cập các tài nguyên trong VPC của bạn bằng cách chỉ định mạng con và nhóm bảo mật là một phần của cấu hình hàm. Các hàm Lambda được cấu hình để truy cập các tài nguyên trong một VPC cụ thể sẽ không có quyền truy cập Internet theo cấu hình mặc định. Để cấp Internet cho các hàm này, hãy sử dụng cổng Internet. Theo mặc định, các hàm Lambda giao tiếp với các tài nguyên trong VPC thực thi đồng thời hai giao thức qua IPv4. Bạn có thể cấu hình các hàm của mình để truy cập các tài nguyên trong VPC thực thi đồng thời hai giao thức qua IPv6. Để biết thêm chi tiết về các hàm Lambda được cấu hình với VPC, hãy xem Kết nối mạng riêng Lambda với VPC.

    Ký mã cho AWS Lambda cung cấp các biện pháp kiểm soát độ tin cậy và tính toàn vẹn, cho phép bạn xác minh rằng chỉ mã còn nguyên vẹn đến từ các nhà phát triển đã được phê duyệt mới được triển khai trong hàm Lambda của bạn. Bạn có thể dùng AWS Signer, một dịch vụ ký mã được quản lý toàn diện để ký nhận điện tử những thành phần lạ của mã và định cấu hình các hàm Lambda của bạn để xác minh các chữ ký khi triển khai. Ký mã cho AWS Lambda hiện chỉ khả dụng với các hàm được đóng gói dưới dạng lưu trữ ZIP.

    Bạn có thể tạo các tạo tác được ký số bằng Hồ sơ ký thông qua bảng điều khiển AWS Signer, Signer API, SAM CLI hoặc AWS CLI. Để tìm hiểu thêm, vui lòng xem tài liệu về AWS Signer.

    Bạn có thể bật tính năng ký mã bằng cách tạo Cấu hình ký mã thông qua Bảng điều khiển quản lý AWS, Lambda API, AWS CLI, AWS CloudFormation và AWS SAM. Cấu hình ký mã giúp bạn chỉ định cấu hình ký được phê duyệt và định cấu hình cảnh báo hoặc từ chối triển khai nếu kiểm tra chữ ký không thành công. Cấu hình ký mã có thể được gắn vào các hàm Lambda riêng lẻ để bật tính năng ký mã. Các hàm như vậy hiện bắt đầu xác minh chữ ký khi triển khai.

    AWS Lambda có thể thực hiện các hoạt động kiểm tra chữ ký sau đây khi triển khai:

    •Chữ ký bị hỏng - Điều này xảy ra nếu thành phần lạ của mã đã bị thay đổi sau khi ký.
    • Chữ ký không khớp - Điều này xảy ra nếu thành phần lạ của mã được ký bởi một cấu hình ký không được phê duyệt.
    • Chữ ký hết hạn - Điều này xảy ra nếu chữ ký đã qua ngày hết hạn đã định cấu hình.
    • Chữ ký đã thu hồi - Điều này xảy ra nếu chủ sở hữu hồ sơ ký thu hồi các tác vụ ký.

    Để tìm hiểu thêm, vui lòng xem tài liệu về AWS Lambda.

    Có, bạn có thể bật tính năng ký mã cho các hàm hiện có bằng cách đính kèm cấu hình ký mã vào hàm. Bạn có thể thực hiện việc này bằng bảng điều khiển AWS Lambda, Lambda API, AWS CLI, AWS CloudFormation và AWS SAM.

    Không có chi phí phát sinh khi sử dụng Ký mã cho AWS Lambda. Bạn có thể thanh toán giá tiêu chuẩn cho AWS Lambda. Để tìm hiểu thêm, vui lòng xem Mức giá.

Khả năng giám sát nâng cao

Mở tất cả

    Để cung cấp cho bạn trải nghiệm tạo bản ghi đơn giản và nâng cao theo mặc định, AWS Lambda cung cấp các biện pháp kiểm soát tạo bản ghi nâng cao như khả năng thu thập gốc đối với bản ghi hàm Lambda ở định dạng có cấu trúc JSON, kiểm soát cách lọc ở cấp độ bản ghi của bản ghi hàm Lambda mà không cần thay đổi mã, cũng như tùy chỉnh nhóm bản ghi Amazon CloudWatch mà Lambda gửi bản ghi đến.

    Bạn có thể thu thập bản ghi hàm Lambda ở định dạng có cấu trúc JSON mà không cần phải sử dụng thư viện tạo bản ghi của riêng bạn. Bản ghi có cấu trúc JSON giúp tìm kiếm, lọc và phân tích khối lượng lớn các mục bản ghi dễ dàng hơn. Bạn có thể kiểm soát cách lọc ở cấp độ bản ghi của bản ghi hàm Lambda mà không cần thay đổi mã, cho phép bạn chọn mức độ chi tiết ghi nhật ký cần thiết cho các hàm Lambda mà không cần sàng lọc qua khối lượng lớn bản ghi khi gỡ lỗi và khắc phục sự cố. Bạn cũng có thể đặt nhóm bản ghi Amazon CloudWatch mà Lambda gửi bản ghi đến, giúp việc tổng hợp bản ghi từ nhiều hàm trong một ứng dụng ở một nơi dễ dàng hơn. Sau đó, bạn có thể áp dụng các chính sách bảo mật, quản trị và lưu giữ cho bản ghi ở cấp ứng dụng thay vì riêng lẻ cho từng hàm.

    Bạn có thể chỉ định các biện pháp kiểm soát tạo bản ghi nâng cao cho các hàm Lambda của mình bằng API AWS Lambda, bảng điều khiển AWS Lambda, AWS CLI, Mô hình ứng dụng phi máy chủ AWS (SAM) và AWS CloudFormation. Để tìm hiểu thêm, hãy truy cập vào bài đăng blog khởi chạy để biết các biện pháp kiểm soát tạo bản ghi nâng cao hoặc Hướng dẫn dành cho nhà phát triển về Lambda.

    Có, bạn có thể sử dụng thư viện tạo bản ghi của riêng mình để tạo bản ghi Lambda ở định dạng có cấu trúc JSON. Để đảm bảo thư viện ghi nhật ký của bạn hoạt động liền mạch với khả năng ghi nhật ký có cấu trúc JSON gốc của Lambda, Lambda sẽ không mã hóa kép bất kỳ bản ghi nào được tạo bởi hàm của bạn đã được mã hóa JSON. Bạn cũng có thể sử dụng thư viện Powertools cho AWS Lambda để thu thập bản ghi Lambda ở định dạng có JSON cấu trúc.

    Bạn không mất thêm phí khi sử dụng các biện pháp kiểm soát tạo bản ghi nâng cao trên Lambda. Bạn sẽ tiếp tục bị tính phí cho việc nhập và lưu trữ bản ghi Lambda của bạn bởi Bản ghi Amazon CloudWatch. Xem trang mức giá CloudWatch để biết chi tiết về mức giá bản ghi.

    Tín hiệu về ứng dụng CloudWatch là giải pháp giám sát hiệu năng ứng dụng (APM) cho phép các nhà phát triển và người vận hành dễ dàng theo dõi tình trạng và hiệu năng của các ứng dụng phi máy chủ được xây dựng bằng Lambda. Tín hiệu về ứng dụng cung cấp các bảng điều khiển được chuẩn hóa, dựng sẵn cho các chỉ số ứng dụng quan trọng, dấu vết tương quan và tương tác giữa các hàm Lambda và các thành phần phụ thuộc – tất cả đều không yêu cầu nhà phát triển phải đo lường thủ công hay thay đổi mã.

    Live Tail của Bản ghi CloudWatch là một chức năng truyền và phân tích bản ghi giàu tính tương tác, mang đến khả năng hiển thị bản ghi theo thời gian thực, giúp dễ dàng phát triển và khắc phục sự cố hàm Lambda hơn. Điều này cho phép nhà phát triển nhanh chóng kiểm tra cũng như xác thực các thay đổi cấu hình hoặc mã theo thời gian thực, đẩy nhanh chu kỳ soạn thảo - kiểm thử - triển khai (còn được gọi là “vòng lặp phát triển nội bộ”) khi phát triển ứng dụng bằng Lambda. Trải nghiệm Live Tail cũng giúp người vận hành và đội ngũ DevOps phát hiện cũng như gỡ lỗi đối với sự cố và lỗi nghiêm trọng về mã của hàm Lambda hiệu quả hơn, giảm thời gian trung bình để phục hồi (MTTR) khi khắc phục sự cố lỗi của hàm Lambda.

Hàm bền vững của AWS Lambda

Mở tất cả

    Sử dụng các hàm Lambda bền vững khi bạn muốn xây dựng logic trong mô hình lập trình quen thuộc của Lambda, với kiểm thử cục bộ, tích hợp IDE và ngôn ngữ lập trình ưu tiên của bạn. Sử dụng AWS Step Functions khi bạn cần thiết kế quy trình làm việc trực quan, khả năng hiển thị giữa các nhóm, thành phần tích hợp của hơn 220 dịch vụ gốc hoặc cơ sở hạ tầng không cần bảo trì. Nhiều ứng dụng được hưởng lợi từ việc sử dụng cả hai cùng nhau.

    Có. Trong khi thời gian chờ cho mỗi lần gọi vẫn là 15 phút, các hàm bền vững Lambda có thể tạm dừng và tiếp tục trên nhiều lần gọi bằng cách sử dụng các tính năng chờ như hẹn giờ, gọi lại và điều kiện thăm dò. Khi bạn gọi các hàm bền vững theo cách không đồng bộ, thời gian chờ thực thi bền có thể kéo dài đến một năm, cho phép các trường hợp sử dụng như quy trình công việc phê duyệt của con người, lời nhắc theo lịch trình và quy trình xử lý nhiều ngày. Đối với các hàm theo yêu cầu, không có phí điện toán trong quá trình tạm dừng.

    Thời gian chờ thực thi (tối đa 1 năm) chi phối thời gian thao tác thực thi có thể chạy. Thời gian lưu giữ (tối đa 90 ngày) chi phối thời gian lịch sử và dữ liệu điểm kiểm tra được giữ lại sau khi quá trình thực thi đạt đến trạng thái cuối. Lưu giữ không ảnh hưởng đến thao tác thực thi đang chạy. Xem Cấu hình hàm bền vững.

    Bạn có thể bao bọc từng đơn vị công việc trong một bước với thử lại tự động. Nếu một bước không thành công sau khi thử lại, mã xử lý của bạn có thể phát hiện lỗi và chạy các bước bù trừ, chẳng hạn như hoàn trả khoản thanh toán hoặc giải phóng đặt chỗ. Bởi vì mỗi bước đã hoàn thành đều đi qua điểm kiểm tra, bao gồm cả các thao tác bù trừ, công việc đã hoàn thành thành công không được lặp lại khi thử lại. Mô hình này giúp bạn xây dựng các quy trình đa bước đáng tin cậy, chẳng hạn như quy trình thực hiện đơn hàng hoặc thanh toán mà không cần viết logic theo dõi trạng thái và thử lại tùy chỉnh.

    Trạng thái thực thi được lưu trữ trong kho trạng thái nội bộ được quản lý đầy đủ. Mỗi thao tác kiểm tra, chẳng hạn như một bước hoặc lần gọi lại, có thể lưu trữ tối đa 256 KB dữ liệu. Giới hạn này áp dụng cho dữ liệu trả về từ thao tác. Dữ liệu được vận hành trong một thao tác, chẳng hạn như đọc và ghi các đối tượng S3 lớn, không được tính vào giới hạn này. Nếu một thao tác cần trả về kết quả lớn, bạn có thể định cấu hình trình tuần tự tùy chỉnh trong SDK để giảm phần dữ liệu truyền tải tới Amazon S3 hoặc Amazon DynamoDB và chỉ truyền tham chiếu qua điểm kiểm tra.

    Các hàm bền vững Lambda sử dụng cùng một nhóm đồng thời cấp tài khoản như các hàm Lambda tiêu chuẩn. Các vị trí đồng thời được giải phóng trong thời gian chờ đợi, vì vậy hàng nghìn thao tác thực thi có thể chờ đợi mà không tiêu thụ tài nguyên đồng thời. Tìm hiểu thêm về hạn mức AWS Lambda.

    Bạn có thể kiểm tra các hàm bền vững cục bộ mà không cần thông tin chứng thực AWS bằng SDK thực thi bền vững cho ngôn ngữ lập trình được hỗ trợ của bạn. AWS SAM CLI cũng hỗ trợ gọi cục bộ, gọi lại và quản lý thực thi bền vững, giúp dễ dàng phát triển và gỡ lỗi trước khi triển khai. Tìm hiểu thêm về kiểm thử các hàm bền vững.