Thông tin chung

Câu hỏi: AWS Lambda là gì?

AWS Lambda cho phép bạn chạy mã mà không cần cung cấp hay quản lý máy chủ. Bạn chỉ phải trả tiền cho thời gian xử lý thông tin đã sử dụng – không tính phí khi mã của bạn không chạy. Với Lambda, bạn có thể chạy mã cho gần như toàn bộ các loại ứng dụng hay dịch vụ backend – tất cả đều không cần quản trị. Chỉ cần tải đoạn mã của bạn lên và Lambda sẽ lo hết những gì cần làm để chạy và mở rộng mã của bạn với mức độ có sẵn cao. Bạn có thể thiết lập mã để tự động kích hoạt từ các dịch vụ AWS khác hoặc gọi trực tiếp từ bất cứ ứng dụng web hay di động nào.

Câu hỏi: Điện toán serverless là gì?

Điện toán serverless đem đến cho bạn khả năng dựng và chạy ứng dụng và dịch vụ mà không phải bận tâm đến máy chủ. Với điện toán serverless, ứng dụng của bạn sẽ chạy trên các máy chủ, nhưng toàn bộ công việc quản lý máy chủ sẽ do AWS đảm nhiệm. Cốt lõi của điện toán serverless là AWS Lambda, cho phép bạn chạy mã mà không cần cung cấp hay quản lý máy chủ.

Câu hỏi: Những sự kiện nào có thể kích hoạt một hàm AWS Lambda?

Vui lòng tham khảo tài liệu để biết danh sách đầy đủ các nguồn sự kiện.

Câu hỏi: Tôi nên dùng AWS Lambda thay vì Amazon EC2 khi nào?

Amazon Web Services mang đến bộ dịch vụ điện toán đáp ứng hàng loạt nhu cầu khác nhau.

Amazon EC2 mang đến tính linh hoạt, với nhiều loại phiên bản đa dạng và tùy chọn tùy chỉnh cài đặt hệ điều hành, mạng và bảo mật cũng như toàn bộ ngăn xếp phần mềm, nhờ đó cho phép bạn dễ dàng di chuyển các ứng dụng hiện tại lên đám mây. Với Amazon EC2, bạn đảm nhiệm việc cung cấp công suất, giám sát tình trạng và hiệu suất của danh mục thiết bị, cũng như thiết kế dung sai và khả năng thay đổi quy mô. AWS Elastic Beanstalk mang đến dịch vụ triển khai và thay đổi quy mô ứng dụng web tiện dụng, trong đó bạn vẫn nắm giữ quyền sở hữu và toàn quyền kiểm soát các phiên bản EC2 chạy nền. Amazon EC2 Container Service là dịch vụ quản lý có quy mô linh hoạt, hỗ trợ các bộ chứa Docker và cho phép bạn dễ dàng chạy ứng dụng phân tán trên cụm phiên bản Amazon EC2 được quản lý.

AWS Lambda giúp dễ dàng thực thi mã để phản ứng với các sự kiện, ví dụ như thay đổi với các vùng lưu trữ Amazon S3, cập nhật bảng Amazon DynamoDB hay các sự kiện do ứng dụng và thiết bị của bạn tạo ra. Với Lambda, bạn không cần phải cung cấp các phiên bản của riêng mình; Lambda thay bạn thực hiện tất cả các hoạt động vận hành và quản trị, bao gồm cung cấp công suất, giám sát tình trạng danh mục thiết bị, áp dụng bản vá bảo mật cho các tài nguyên điện toán chạy nền, triển khai mã, chạy phần lớp front end của dịch vụ web, cũng như giám sát và ghi nhật ký mã. AWS Lambda mang đến khả năng thay đổi quy mô dễ dàng và độ sẵn sàng cao cho mã của bạn mà không cần đầu tư thêm công sức.

Câu hỏi: Loại mã nào chạy được trên AWS Lambda?

AWS Lambda giúp dễ dàng thực hiện nhiều ứng dụng trên đám mây. Ví dụ: bạn có thể dùng AWS Lambda để xây dựng lớp back-end của ứng dụng di động đảm nhiệm việc truy xuất và chuyển đổi dữ liệu từ Amazon DynamoDB, các bộ xử lý đảm nhiệm việc nén hoặc chuyển đổi các đối tượng khi được tải lên Amazon S3, nhờ đó có thể kiểm tra và báo cáo các lời gọi API gửi đến dịch vụ Amazon Web Services bất kỳ và xử lý serverless bằng Amazon Kinesis cho dữ liệu truyền phát.

Câu hỏi: AWS Lambda hỗ trợ những ngôn ngữ nào?

Về bản chất, AWS Lambda hỗ trợ 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 để lập trình các chức năng 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.

Câu hỏi: Tôi có được phép truy cập cơ sở hạ tầng chạy AWS Lambda không?

Không. AWS Lambda thay mặt bạn vận hành cơ sở hạ tầng điện toán, cho phép thực hiện các hoạt động kiểm tra tình trạng, áp dụng bản vá bảo mật và công việc bảo trì định kỳ khác.

Câu hỏi: AWS Lambda cô lập mã của tôi bằng cách nào?

Mỗi hàm AWS Lambda 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ư trên Amazon EC2 để cung cấp khả năng bảo mật và biệt lập ở cơ sở hạ tầng và các cấp độ thực thi.

Câu hỏi: AWS Lambda bảo mật mã của tôi bằng cách nào?

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.

Câu hỏi: Khu vực AWS nào có cung cấp AWS Lambda?

Vui lòng tham khảo Bảng khu vực cơ sở hạ tầng toàn cầu của AWS.

Hàm AWS Lambda

Câu hỏi: Hàm AWS Lambda là gì?

Mã mà bạn chạy trên AWS Lambda được tải lên dưới dạng “hàm Lambda”. Mỗi hàm có các thông tin cấu hình liên kết, ví dụ như tên, mô tả, điểm bắt đầu và các yêu cầu về tài nguyên. Mã phải được viết theo kiểu “không có trạng thái”, tức là mã phải giả định không có bố trí với cơ sở hạ tầng điện toán chạy ngầm. Khả năng truy cập hệ thống tệp cục bộ, các quá trình phụ và các thành phần lạ tương tự không được kéo dài vượt quá vòng đời của yêu cầu và mọi trạng thái bền vững đều phải được lưu trên Amazon S3, Amazon DynamoDB, Amazon EFS hoặc dịch vụ lưu trữ khác có trên Internet. Hàm Lambda có thể sử dụng các thư viện, kể cả thư viện gốc.

Câu hỏi: AWS Lambda có sử dụng lại các phiên bản hàm không?

Để cải thiện hiệu suất, AWS Lambda có thể chọn giữ lại phiên bản hàm và sử dụng lại để phục vụ cho yêu cầu sau đó thay vì tạo bản sao mới. Để tìm hiểu thêm về cách Lambda sử dụng lại các phiên bản hàm, hãy truy xem tài liệu hướng dẫn của chúng tôi. Mã của bạn không được giả định rằng điều này sẽ luôn xảy ra.

Câu hỏi: Tôi phải làm gì nếu muốn tạo dung lượng trống trên ổ đĩa cho hàm AWS Lambda?

Bạn có thể cấu hình từng hàm Lambda với dung lượng lưu trữ tạm thời của riêng nó từ 512MB đến 10.240MB với gia số 1MB. Dung lượng lưu trữ tạm thời có sẵn trong thư mục /tmp của từng hàm.

Mỗi hàm có quyền truy cập 512MB dung lượng lưu trữ mà không mất thêm phí. Khi bạn cấu hình các hàm với hơn 512MB dung lượng lưu trữ tạm thời, bạn sẽ bị tính phí dựa trên dung lượng lưu trữ mà bạn cấu hình và thời gian chạy hàm của bạn, được tính theo gia số 1ms. Để so sánh, ở khu vực Miền Đông Hoa Kỳ (Ohio), giá dung lượng lưu trữ tạm thời của AWS Fargate là 0,000111 USD với mỗi GB-giờ hoặc 0,08 USD với mỗi GB-tháng. Mức định giá dung lượng lưu trữ gp3 của Amazon EBS ở Miền Đông Hoa Kỳ (Ohio) là 0,08 USD với mỗi GB-tháng. Mức định giá dung lượng lưu trữ tạm thời của AWS Lambda là 0,0000000309 USD với mỗi GB-giây hoặc 0,000111 USD với mỗi GB-giờ và 0,08 USD với mỗi GB-tháng. Để tìm hiểu thêm, hãy tham khảo Giá AWS Lambda.

Câu hỏi: Làm thế nào để cấu hình ứng dụng để sử dụng bộ nhớ lưu trữ tạm thời của AWS Lambda?

Bạn có thể cấu hình từng hàm Lambda với dung lượng lưu trữ tạm thời của riêng nó từ 512MB đến 10.240MB với gia số 1MB bằng cách sử dụng bảng điều khiển AWS Lambda, API AWS Lambda, hoặc mẫu AWS CloudFormation trong quá trình tạo hay cập nhật hàm.

Câu hỏi: Bộ nhớ lưu trữ tạm thời AWS Lambda có được mã hóa không?

Có. Tất cả dữ liệu được lưu trong bộ nhớ lưu trữ tạm thời đều được mã hoá hoàn toàn bằng khoá do AWS quản lý.

Câu hỏi: Chỉ số nào giúp tôi theo dõi việc sử dụng bộ nhớ lưu trữ tạm thời AWS Lambda của mình?

Bạn có thể sử dụng các chỉ số AWS CloudWatch Lambda Insight để theo dõi việc sử dụng bộ nhớ lưu trữ tạm thời của mình. Để tìm hiểu thêm, hãy xem tài liệu về AWS CloudWatch Lambda Insight.

Câu hỏi: Tôi nên sử dụng bộ nhớ lưu trữ tạm thời Amazon S3, Amazon EFS hoặc AWS Lambda cho các ứng dụng phi máy chủ của mình khi nào?

Nếu ứng dụng của bạn cần lưu trữ lâu dài, liên tục, hãy cân nhắc sử dụng Amazon S3 hoặc Amazon EFS. Nếu ứng dụng của bạn cần lưu trữ dữ liệu cần thiết bằng mã trong một lệnh gọi hàm duy nhất, hãy cân nhắc sử dụng bộ nhớ lưu trữ tạm thời AWS Lambda làm bộ nhớ đệm tạm thời. Để tìm hiểu thêm, vui lòng xem Lựa chọn giữa các tùy chọn lưu trữ dữ liệu của AWS Lambda trong các ứng dụng web.

Câu hỏi: Tôi có thể sử dụng bộ nhớ lưu trữ tạm thời khi Tính đồng thời được cung cấp đang được bật cho hàm của tôi không?

Có. Tuy nhiên, nếu ứng dụng của bạn cần lưu trữ liên tục, hãy cân nhắc sử dụng Amazon EFS hoặc Amazon S3. Khi bạn bật Tính đồng thời được cung cấp cho hàm của mình, mã khởi tạo của hàm sẽ chạy trong quá trình phân bổ và cứ sau vài giờ, khi các phiên bản đang chạy của hàm được sử dụng lại. Bạn có thể xem thời gian khởi tạo trong nhật ký và truy vết sau khi một phiên bản xử lý yêu cầu. Tuy nhiên, quá trình khởi tạo vẫn sẽ được ghi lại ngay cả khi phiên bản chưa từng xử lý yêu cầu. Hành động khởi tạo của Tính đồng thời được cung cấp này có thể ảnh hưởng đến cách hàm của bạn tương tác với dữ liệu được lưu trong bộ nhớ lưu trữ tạm thời, ngay cả khi hàm đang không xử lý yêu cầu. Để tìm hiểu thêm về Tính đồng thời được cung cấp, vui lòng xem tài liệu liên quan.

Câu hỏi: Làm thế nào để cấu hình ứng dụng để sử dụng bộ nhớ lưu trữ tạm thời của AWS Lambda?

Bạn có thể cấu hình từng hàm Lambda với dung lượng lưu trữ tạm thời của riêng nó từ 512MB đến 10.240MB với gia số 1MB bằng cách sử dụng bảng điều khiển AWS Lambda, API AWS Lambda, hoặc mẫu AWS CloudFormation trong quá trình tạo hay cập nhật hàm.

Câu hỏi: Bộ nhớ lưu trữ tạm thời AWS Lambda có được mã hóa không?

Có. Tất cả dữ liệu được lưu trong bộ nhớ lưu trữ tạm thời đều được mã hoá hoàn toàn bằng khoá do AWS quản lý.

Câu hỏi: Chỉ số nào giúp tôi theo dõi việc sử dụng bộ nhớ lưu trữ tạm thời AWS Lambda của mình?

Bạn có thể sử dụng các chỉ số AWS CloudWatch Lambda Insight để theo dõi việc sử dụng bộ nhớ lưu trữ tạm thời của mình. Để tìm hiểu thêm, hãy xem tài liệu về AWS CloudWatch Lambda Insight.

Câu hỏi: Tại sao các hàm của AWS Lambda không được phép có trạng thái?

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 cần thiết để thay đổi 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âu hỏi: Tôi có thể sử dụng các luồng và quy trình trong mã hàm AWS Lambda không?

Có. AWS Lambda cho phép bạn sử dụng ngôn ngữ và các tính năng hệ điều hành thông thường như tạo các luồng và quy trình bổ sung. Các nguồn tài nguyên phân bổ cho hàm Lambda, bao gồm bộ nhớ, thời gian thực thi, ổ đĩa và mức sử dụng mạng, phải được chia sẻ với tất cả các luồng và quy trình mà hàm sử dụng. Bạn có thể khởi chạy các quy trình bằng bất kỳ ngôn ngữ nào Amazon Linux hỗ trợ.

Câu hỏi: Những hạn chế nào áp dụng cho mã hàm AWS Lambda?

Lambda cố gắng đặt ra ít hạn chế nhất có thể đối với các hoạt động ngôn ngữ và hệ điều hành thông thường, tuy nhiên, có một số hoạt động bị vô hiệu hóa: AWS Lambda chặn kết nối mạng đến và đối với kết nối đi thì chỉ hỗ trợ ổ cắm TCP/IP và UDP/IP, đồng thời các lệnh gọi hệ thống ptrace (gỡ lỗi) cũng bị chặn. Lưu lượng cổng 25 của giao thức TCP cũng bị chặn để chống thư rác.

Câu hỏi: Làm thế nào để tạo hàm AWS Lambda bằng bảng điều khiển Lambda?

Nếu đang sử dụng Node.js hoặc Python, bạn có thể tạo mã cho hàm bằng trình biên tập mã trên bảng điều khiển AWS Lambda, tại đó bạn có thể tạo và kiểm thử hàm, cũng như xem kết quả thực thi hàm trong một môi trường mạnh mẽ, giống như IDE. Đi tới bảng điều khiển để bắt đầu.

Bạn cũng có thể đóng gói mã (và mọi thư viện phụ thuộc) dưới dạng ZIP và tải gói lên bằng bảng điều khiển AWS Lambda từ môi trường cục bộ hoặc chỉ định vị trí Amazon S3 chứa tệp ZIP. Các tệp tải lên không được phép lớn hơn 50MB (nén). Bạn cũng có thể sử dụng phần bổ trợ AWS Eclipse để tạo và triển khai các hàm Lambda trong Java. Bạn có thể sử dụng phần bổ trợ Visual Studio để tạo và triển khai các hàm Lambda trong C# và Node.js.

Câu hỏi: Làm thế nào để tạo hàm AWS Lambda bằng CLI của Lambda?

Bạn cũng có thể đóng gói mã (và mọi thư viện phụ thuộc) dưới dạng ZIP và tải gói lên AWS CLI từ môi trường cục bộ hoặc chỉ định vị trí Amazon S3 chứa tệp ZIP. Các tệp tải lên không được phép lớn hơn 50MB (nén). Tham khảo hướng dẫn Bắt đầu với Lambda để bắt đầu.

Câu hỏi: AWS Lambda có hỗ trợ các biến môi trường không?

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 tham khảo tài liệu hướng dẫn sử dụng.

Câu hỏi: Tôi có thể lưu trữ thông tin nhạy cảm trong các biến môi trường khô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 AWS Key Management Service và lưu các giá trị thu được dưới dạng văn bản mã hóa trong biến môi trường. Bạn sẽ cần sử dụng logic trong mã hàm AWS Lambda để giải mã các giá trị này.

Câu hỏi: Tôi có thể quản lý các hàm AWS Lambda bằng cách nào?

Bạn có thể dễ dàng liệt kê, xóa, cập nhật và giám sát các hàm Lambda bằng bảng thông tin trong bảng điều khiển AWS Lambda. Bạn cũng có thể sử dụng AWS CLI và AWS SDK để quản lý các hàm Lambda. Truy cập Hướng dẫn dành cho nhà phát triển Lambda để tìm hiểu thêm.

Câu hỏi: Tôi có thể chia sẻ mã qua nhiều chức năng không?

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

Câu hỏi: Tôi giám sát hàm AWS Lambda bằng cách nào?

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.

Tham khảo Khắc phục sự cố về số liệu 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 số liệu tích hợp sẵn của Lambda.

Câu hỏi: Tôi khắc phục lỗi trong hàm AWS Lambda bằng cách nào?

AWS Lambda tự động tích hợp với Amazon CloudWatch logs, nhờ đó tạo một nhóm nhật ký cho từng hàm Lambda và cung cấp các mục nhập nhật ký sự kiện cơ bản trong vòng đời của ứng dụng, bao gồm ghi nhật ký các tài nguyên đã tiêu tốn khi sử dụng hàm đó. Bạn có thể dễ dàng chèn các câu lệnh ghi nhật ký khác vào mã của mình. Bạn cũng có thể gọi API ghi nhật ký từ bên thứ ba trong hàm Lambda của mình. Tham khảo Khắc phục sự cố hàm Lambda để tìm hiểu thêm. Sẽ áp dụng phí Amazon CloudWatch Logs.

Câu hỏi: Tôi thay đổi quy mô cho hàm AWS Lambda bằng cách nào?

Bạn không cần phải thay đổi quy mô cho các hàm Lambda – AWS Lambda thay mặt bạn tự động điều chỉnh quy mô cho các hàm. Mỗi khi nhận được thông báo sự kiện từ hàm của bạn, AWS Lambda sẽ nhanh chóng tìm vị trí công suất trống trong danh mục thiết bị điện toán và chạy mã của bạn. Vì mã của bạn không có trạng thái, AWS Lambda có thể bắt đầu bao nhiêu bản sao hàm cần thiết mà không mất thời gian trễ dài từ việc triển khai và cấu hình. Không có giới hạn cơ bản đối với việc thay đổ quy mô hàm. AWS Lambda sẽ phân bổ công suất linh hoạt để phù hợp với tốc độ của các sự kiện đến.

Câu hỏi: Các tài nguyên điện toán được chỉ định cho hàm AWS Lambda như thế nào?

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.

Câu hỏi: Khi nào tôi nên dùng các hàm AWS Lambda với bộ nhớ hơn 3008 MB?

Khách hàng đang thực hiện khối lượng công việc cần nhiều dung lượng bộ nhớ hoặc nặng về tính toán giờ đã có thể dùng thêm dung lượng bộ nhớ cho các hàm của họ. Các hàm bộ nhớ lớn hơn giúp các ứng dụng đa luồng chạy nhanh hơn, nhờ đó, chúng trở nên lý tưởng với các ứng dụng nặng về dữ liệu và tính toán như máy học, các tác vụ hàng loạt và ETL, mô hình tài chính, bộ gen, HPC và xử lý đa phương tiện.

Câu hỏi: Hàm AWS Lambda có thể thực thi trong bao lâu?

Hàm AWS Lambda có thể được cấu hình để chạy tối đa 15 phút mỗi đợt 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.

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi sử dụng các hàm AWS Lambda?

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

Câu hỏi: Tôi có thể tiết kiệm tiền trên AWS Lambda với Compute Savings Plan không?

Có. Ngoài việc tiết kiệm tiền trên Amazon EC2 và AWS Fargate, bạn cũng có thể sử dụng Compute Savings Plans để tiết kiệm tiền trên AWS Lambda. Compute Savings Plans giảm giá tới 17% cho Thời lượng, Đồng thời được cung cấp và Thời lượng (Đồng thời được cung cấp). Compute Savings Plans không giảm giá trên các Yêu cầu trong hóa đơn Lambda của bạn. Tuy nhiên, cam kết Compute Savings Plans của bạn có thể áp dụng cho các Yêu cầu ở mức giá thông thường.

Câu hỏi: AWS Lambda có hỗ trợ quản lý phiên bản không?

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ề quản lý phiên bản hàm Lambda của chúng tôi.

Câu hỏi: Sau khi tôi tải mã lên, mất bao lâu để hàm AWS Lambda của tôi sẵn sàng gọi?

Thời gian triển khai có thể thay đổi theo kích thước của mã, tuy nhiên các hàm AWS Lambda thường sẵn sàng gọi sau khi tải lên vài giây.

Câu hỏi: Tôi có thể sử dụng phiên bản thư viện được hỗ trợ của riêng mình không?

Có. Bạn có thể đưa vào sử dụng phiên bản thư viện của riêng mình (bao gồm cả SDK AWS) để dùng một phiên bản không phải phiên bản mặc định do AWS Lambda cung cấp.

Câu hỏi: Định giá theo bậc hoạt động như thế nào?

AWS Lambda cung cấp các bậc định giá chiết khấu cho thời lượng sử dụng hàm theo nhu cầu hàng tháng trên các ngưỡng nhất định. Định giá theo bậc khả dụng đối với các hàm chạy trên cả hai kiến trúc x86 và Arm. Các bậc định giá của Lambda được áp dụng để tổng hợp thời lượng sử dụng hàm theo nhu cầu hàng tháng, trong đó những hàm này chạy trên cùng một kiến trúc (tương ứng là x86 hoặc Arm), trong cùng một khu vực của tài khoản. Nếu bạn đang sử dụng phương thức thanh toán tổng hợp trong Tổ chức AWS, các bậc định giá được áp dụng cho thời lượng sử dụng hàm tổng hợp hàng tháng của bạn, trong đó những hàm này chạy trên cùng một kiến trúc, trong cùng một khu vực, trên các tài khoản của tổ chức. Ví dụ: nếu bạn đang chạy các hàm Lambda x86 ở khu vực Miền Đông Hoa Kỳ (Ohio), bạn sẽ trả 0,0000166667 USD cho mỗi GB-giây cho 6 tỷ GB-giây đầu tiên mỗi tháng, 0,0000150000 USD cho mỗi GB-giây cho 9 tỷ GB-giây tiếp theo mỗi tháng và 0,0000133334 USD cho mỗi GB-giây trên 15 tỷ GB-giây mỗi tháng, ở khu vực đó. Mức định giá dành cho Truy vấn, Tính đồng thời được cung cấp và Thời lượng đồng thời được cung cấp vẫn không thay đổi. Để biết thêm thông tin, vui lòng xem Định giá AWS Lambda.

Câu hỏi: Tôi có thể tận dụng cả mức định giá theo bậc và Gói tiết kiệm cho điện toán không?

Có. Mức sử dụng Lambda được bao trả trong cam kết của gói tiết kiệm theo giờ của bạn sẽ được tính theo mức giá và chiết khấu hiện hành của nhà cung cấp dịch vụ đám mây (CSP). Mức sử dụng còn lại không được cam kết này bao trả sẽ được tính theo mức giá tương ứng với bậc của thời lượng sử dụng hàm tổng hợp hàng tháng của bạn.

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

Câu hỏi: Nguồn sự kiện là gì?

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 công bố sự kiện với Lambda. Ví dụ: Lambda có thể lấy các bản ghi từ một luồng Amazon Kinesis hoặc một hàng chờ Amazon SQS và thực thi hàm Lambda cho mỗi thông điệp tìm nạp được.

Nhiều dịch vụ khác, ví dụ như AWS CloudTrail, có thể đóng vai trò làm các nguồn sự kiện chỉ đơn giản bằng cách đăng nhập vào Amazon S3 và sử dụng thông báo của bộ chứa S3 để kích hoạt các hàm AWS Lambda.

Câu hỏi: Có thể sử dụng nguồn sự kiện nào với AWS Lambda?

Vui lòng tham khảo tài liệu để biết danh sách đầy đủ các nguồn sự kiện.

Câu hỏi: Các sự kiện được biểu diễn như thế nào trong AWS Lambda?

Các sự kiện được gửi đến hàm Lambda với tư cách là tham số đầu vào sự kiện. Đối với các nguồn sự kiện mà sự kiện đến theo lô, ví dụ như Amazon SQS, Amazon Kinesis và Amazon DynamoDB Streams, tham số sự kiện có thể chứa nhiều sự kiện trong một lệnh gọi đơn lẻ, tùy theo kích thước lô mà bạn yêu cầu. Để tìm hiểu thêm về thông báo sự kiện của Amazon S3, hãy tham khảo Cấu hình thông báo cho các sự kiện của Amazon S3. Để tìm hiểu thêm về Amazon DynamoDB Streams, hãy tham khảo Hướng dẫn cho nhà phát triển luồng DynamoDB. Để tìm hiểu thêm về cách gọi các hàm Lambda bằng Amazon SNS, hãy tham khảo Hướng dẫn dành cho nhà phát triển Amazon SNS. Để biết thêm thông tin về các sự kiện của Amazon Cognito, hãy tham khảo Amazon Cognito. Để biết thêm thông tin về nhật ký AWS CloudTrail và kiểm tra các lệnh gọi API trên nhiều dịch vụ AWS, hãy tham khảo AWS CloudTrail.

Câu hỏi: Làm thế nào để hàm AWS Lambda phản hồi với các thay đổi trong bộ chứa Amazon S3?

Từ bảng điều khiển AWS Lambda, bạn có thể chọn một hàm và liên kết hàm đó với các thông báo từ bộ chứa Amazon S3. Hoặc, bạn có thể sử dụng bảng điều khiển Amazon S3 và cấu hình để các thông báo của bộ chứa gửi đến hàm AWS Lambda của bạn. Chức năng tương tự này cũng có sẵn thông qua AWS SDK và AWS CLI.

Câu hỏi: Làm thế nào để hàm AWS Lambda phản hồi với các cập nhật trong bộ chứa Amazon DynamoDB?

Bạn có thể kích hoạt hàm Lambda trên các bản cập nhật bảng DynamoDB bằng cách đăng ký hàm Lambda với Luồng DynamoDB liên kết với bảng. Bạn có thể liên kết một Luồng DynamoDB với hàm Lambda bằng bảng điều khiển Amazon DynamoDB, bảng điều khiển AWS Lambda hoặc API registerEventSource của Lambda.

Câu hỏi: Làm thế nào để dùng hàm AWS Lambda cho việc xử lý các bản ghi trong luồng Amazon Kinesis?

Từ bảng điều khiển AWS Lambda, bạn có thể chọn một hàm và liên kết hàm đó với một luồng Amazon Kinesis được sở hữu bởi cùng tài khoản. Chức năng tương tự này cũng có sẵn thông qua AWS SDK và AWS CLI.

Câu hỏi: AWS Lambda xử lý dữ liệu từ các luồng Amazon Kinesis và luồng Amazon DynamoDB như thế nào?

Các bản ghi của Amazon Kinesis và DynamoDB Streams đã gửi đến hàm AWS Lambda của bạn được xếp số thứ tự chặt chẽ trên mỗi phân đoạn. Điều này đồng nghĩa rằng, nếu bạn đặt hai bản ghi trong cùng một phân đoạn, Lambda đảm bảo hàm Lambda của bạn sẽ được gọi ra thành công bằng bản ghi đầu tiên trước khi được gọi bằng bản ghi thứ hai. Nếu yêu cầu gọi cho một bản ghi hết thời gian chờ, được điều tiết, hay gặp bất kỳ lỗi nào khác, Lambda sẽ thử lại cho đến khi thao tác gọi thành công (hoặc bản ghi đạt đến thời gian hết hạn sau 24 giờ) trước khi chuyển sang bản ghi tiếp theo. Không có đảm bảo về thứ tự của các bản ghi trên các phân mảnh khác nhau và quá trình xử lý từng phân mảnh diễn ra song song.

Câu hỏi: Tôi nên chọn AWS Lambda hay Dịch vụ được quản lý của Amazon dành cho Apache Flink cho nhu cầu phân tích của mình?

AWS Lambda cho phép bạn thực hiện các phép tổng hợp dựa trên thời gian (chẳng hạn như phép count, max, sum, average (đếm, lớn nhất, tổng, trung bình), v.v.) trong một khoảng thời gian ngắn kéo dài tối đa 15 phút cho dữ liệu trong Amazon Kinesis hoặc Luồng Amazon DynamoDB trên một phân vùng logic đơn lẻ, ví dụ như một phân mảnh. Như vậy, bạn có thể dễ dàng thiết lập phân tích đơn giản cho ứng dụng dựa trên sự kiện mà không làm tăng thêm sự phức tạp về kiến trúc, vì logic kinh doanh và phân tích của bạn có thể được đặt trong cùng một hàm. Lambda hỗ trợ các phép tổng hợp trong khung thời gian cố định tối đa là 15 phút, dựa trên dấu thời gian sự kiện. Dịch vụ được quản lý của Amazon dành cho Apache Flink cho phép bạn xây dựng các ứng dụng phân tích phức tạp hơn để hỗ trợ các lựa chọn xử lý linh hoạt và khả năng chịu lỗi mạnh mẽ với quá trình xử lý chính xác một lần không trùng lặp, cũng như xây dựng phép phân tích có thể được thực hiện trên toàn bộ luồng dữ liệu ở nhiều phân vùng logic. Với KDA, bạn có thể phân tích dữ liệu qua nhiều loại khung thời gian tổng hợp (khung thời gian cố định, khung thời gian linh hoạt, khung thời gian trượt, khung thời gian phiên) bằng cách sử dụng thời gian diễn ra sự kiện hoặc thời gian xử lý.

  AWS Lambda Amazon KDA
Khung thời gian cố định
Khung thời gian linh hoạt Không
Khung thời gian trượt Không
Khung thời gian phiên Không
Bổ sung Không
Bảng đầu vào chung và bảng tham chiếu Không
Luồng đầu vào phân tách Không
Xử lý chính xác một lần Không
Khung thời gian tối đa 15 phút Không có giới hạn
Phạm vi tổng hợp Phân vùng/phân mảnh Luồng
Ngữ nghĩa thời gian Thời gian diễn ra sự kiện Thời gian diễn ra sự kiện, Thời gian xử lý

Câu hỏi: Làm thế nào để sử dụng một hàm AWS Lambda nhằm phản hồi cho các thông báo do Amazon Simple Notification Service (SNS) gửi đến?

Từ bảng điều khiển AWS Lambda, bạn có thể chọn một hàm và liên kết hàm đó với một chủ đề Amazon SNS. Chức năng tương tự này cũng có sẵn thông qua AWS SDK và AWS CLI.

Câu hỏi: Làm thế nào để sử dụng một hàm AWS Lambda để phản hồi với các email do Amazon Simple Email Service (SES) gửi?

Từ bảng điều khiển Amazon SES, bạn có thể thiết lập quy tắc nhận để Amazon SES cung cấp thông điệp đến hàm AWS Lambda. Chức năng tương tự có sẵn thông qua AWS SDK và AWS CLI.

Câu hỏi: Tôi dùng hàm AWS Lambda để phản hồi với các cảnh báo của Amazon CloudWatch như thế nào?

Trước tiên, hãy cấu hình cảnh báo để gửi các thông báo của Amazon SNS. Sau đó, từ bảng điều khiển AWS Lambda, chọn một hàm Lambda và liên kết hàm đó với một chủ đề Amazon SNS. Xem Hướng dẫn dành cho nhà phát triển Amazon CloudWatch để tìm hiểu thêm về các cảnh báo của Amazon CloudWatch.

Câu hỏi: Làm thế nào để sử dụng hàm AWS Lambda để phản hồi với các thay đổi về dữ liệu người dùng hoặc thiết bị do Amazon Cognito quản lý?

Từ bảng điều khiển AWS Lambda, bạn có thể chọn một hàm để kích hoạt khi bất kỳ bộ dữ liệu nào liên kết với tập hợp định danh Amazon Cognito được đồng bộ hóa. Chức năng tương tự này cũng có sẵn thông qua AWS SDK và AWS CLI. Tham khảo Amazon Cognito để biết thêm thông tin về cách sử dụng Amazon Cognito cho việc chia sẻ và đồng bộ hóa dữ liệu trên nhiều thiết bị của một người dùng.

Câu hỏi: Ứng dụng của tôi có thể trực tiếp kích hoạt một hàm AWS Lambda như thế nào?

Bạn có thể gọi ra 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 tham khảo Hướng dẫn dành cho nhà phát triển Lambda để tìm hiểu thêm.

Câu hỏi: Độ trễ của quá trình gọi ra một hàm AWS Lambda khi phản hồi với một sự kiện là bao lâu?

AWS Lambda được thiết kế để xử lý các sự kiện trong vài mili giây. Độ trễ sẽ cao hơn ngay sau khi hàm Lambda được tạo, cập nhật hoặc nếu hàm không được sử dụng gần đây.

Câu hỏi: Làm thế nào tôi có thể tạo một lớp back-end di động bằng AWS Lambda?

Bạn tải mã cần AWS Lambda thực thi lên, sau đó gọi mã ra từ ứng dụng di động bằng AWS Lambda SDK có trong AWS Mobile SDK. Bạn có thể tạo cả các lệnh gọi trực tiếp (đồng bộ) để truy xuất hoặc kiểm tra dữ liệu trong thời gian thực cũng như các lệnh gọi không đồng bộ. Bạn cũng có thể xác định một API tùy chỉnh bằng Amazon API Gateway và gọi ra các hàm Lambda thông qua bất kỳ máy khách nào tương thích với REST. Để tìm hiểu thêm về AWS Mobile SDK, hãy tham khảo trang AWS Mobile SDK. Để tìm hiểu thêm về Amazon API Gateway, hãy tham khảo trang Amazon API Gateway.

Câu hỏi: Làm thế nào để gọi một hàm AWS Lambda qua HTTPS?

Bạn có thể gọi ra một hàm Lambda qua HTTPS bằng cách xác định một API RESTful tùy chỉnh bằng Amazon API Gateway. 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 Amazon API Gateway.

Câu hỏi: Hàm AWS Lambda của tôi có thể tùy chỉnh hành vi đối với thiết bị và ứng dụng đang thực hiện yêu cầu như thế nào?

Khi được gọi thông qua AWS Mobile SDK, các hàm AWS Lambda tự động nhận được thông tin chuyên sâu về thiết bị và ứng dụng đã thực hiện lời gọi thông qua đối tượng ‘ngữ cảnh’.

Câu hỏi: Làm thế nào hàm AWS Lambda của tôi có thể cá nhân hóa hành vi của nó dựa trên thông tin định danh của người dùng cuối của một ứng dụng?

Khi ứng dụng của bạn sử dụng thông tin định danh từ Amazon Cognito, người dùng cuối có thể tự xác thực bằng nhiều nhà cung cấp thông tin đăng nhập công cộng như Amazon, Facebook, Google và các dịch vụ khác tương thích với OpenID Connect. Sau đó, thông tin định danh của người dùng được trình diện một cách tự động và bảo mật với hàm Lambda của bạn dưới dạng thông tin định danh từ Amazon Cognito, cho phép hàm truy cập dữ liệu người dùng từ Amazon Cognito hoặc dưới dạng khóa để lưu trữ và truy xuất dữ liệu trong Amazon DynamoDB hoặc các dịch vụ web khác.

Câu hỏi: Làm thế nào để tạo một kỹ năng Alexa bằng AWS Lambda?

AWS Lambda được tích hợp với Bộ công cụ kỹ năng Alexa, một tập hợp các API, công cụ, tài liệu hướng dẫn và các mã mẫu để bạn tự tìm hiểu, từ đó bạn có thể dễ dàng tạo các chức năng (hoặc “kỹ năng”) được điều khiển bằng giọng nói cho Alexa. Bạn chỉ việc tải mã hàm Lambda lên cho kỹ năng Alexa mới mà bạn đang tạo và AWS Lambda sẽ làm công việc còn lại, thực thi mã để phản hồi với các tương tác qua giọng nói của Alexa và thay bạn tự động quản lý các tài nguyên điện toán. Đọc tài liệu về Bộ công cụ kỹ năng Alexa để biết thêm chi tiết.

Câu hỏi: Điều gì sẽ xảy ra nếu hàm của tôi bị lỗi khi đang xử lý một sự kiện?

Đối với các thông báo và sự kiện tùy chỉnh của bộ chứa Amazon S3, AWS Lambda sẽ cố gắng thực thi hàm của bạn ba lần nếu có tình trạng lỗi trong mã hoặc nếu bạn vượt quá giới hạn dịch vụ hoặc tài nguyên.

Đối với các nguồn sự kiện đã yêu cầu mà AWS Lambda thay bạn thăm dò, ví dụ như các luồng Amazon DynamoDB và các luồng Amazon Kinesis, Lambda sẽ tiếp tục cố gắng thực hiện khi mã của nhà phát triển gặp lỗi cho đến khi dữ liệu hết hạn. Bạn có thể giám sát tiến trình thông qua bảng điều khiển Amazon Kinesis và Amazon DynamoDB, cũng như qua số liệu của Amazon CloudWatch mà AWS Lambda tạo ra cho hàm của bạn. Bạn cũng có thể đặt các cảnh báo Amazon CloudWatch dựa trên tỷ lệ lỗi hoặc tốc độ điều tiết thực thi.

Sử dụng AWS Lambda để xây dựng ứng dụng

Câu hỏi: Ứng dụng serverless là gì?

Ứng dụng dựa trên Lambda (còn gọi là ứng dụng serverless) được cấu thành từ các hàm kích hoạt bằng sự kiện. Một ứng dụng serverless tiêu biểu bao gồm một hoặc nhiều hàm kích hoạt bằng các sự kiện chẳng hạn như các lượt tải đối tượng lên Amazon S3, các thông báo của Amazon SNS hoặc các hành động trên API. Các chức năng này có thể đứng độc lập hay tận dụng các tài nguyên khác như bảng DynamoDB hoặc bộ chứa Amazon S3. Ứng dụng serverless cơ bản nhất chỉ đơn giản là một hàm.

Câu hỏi: Tôi triển khai và quản lý ứng dụng serverless bằng cách nào?

Bạn có thể triển khai và quản lý các ứng dụng serverless bằng Mô hình ứng dụng serverless của AWS (AWS SAM). AWS SAM là một chỉ dẫn kỹ thuật quy định các quy tắc biểu diễn các ứng dụng serverless trên AWS. Chỉ dẫn kỹ thuật này phù hợp với cú pháp mà AWS CloudFormation đang sử dụng và được hỗ trợ gốc trên AWS CloudFormation dưới dạng tập hợp các loại tài nguyên (được gọi là “tài nguyên phi máy chủ”). Các tài nguyên này giúp khách hàng AWS sử dụng CloudFormation dễ dàng hơn trong việc cấu hình và triển khai các ứng dụng phi máy chủ thông qua những API CloudFormation hiện tại.

Câu hỏi: Làm thế nào tôi có thể khám phá các ứng dụng phi máy chủ hiện có do cộng đồng AWS phát triển?

Bạn có thể chọn từ tuyển tập các ứng dụng serverless do các nhà phát triển, các công ty và các đối tác phát hành trong cộng đồng AWS thông qua AWS Serverless Application Repository. Sau khi tìm được một ứng dụng, bạn có thể cấu hình và triển khai ứng dụng đó trực tiếp từ bảng điều khiển Lambda.

Câu hỏi: Làm thế nào để tự động hóa quá trình triển khai cho ứng dụng phi máy chủ?

Bạn có thể tự động hóa quá trình phát hành ứng dụng phi máy chủ bằng AWS CodePipeline và AWS CodeDeploy. CodePipeline là một dịch vụ phân phối liên tục cho phép bạn mô hình hóa, hình ảnh hóa và tự động hóa các bước cần thiết để phát hành ứng dụng phi máy chủ. CodeDeploy cung cấp công cụ tự động hóa triển khai cho các ứng dụng dựa trên Lambda. CodeDeploy cho phép bạn điều phối các hoạt động triển khai theo các phương pháp thực hành tốt nhất, ví dụ như quy trình triển khai canary hoặc tuyến tính, đồng thời giúp bạn thiết lập được hành lang bảo vệ cần thiết để xác minh mã mới phát triển đảm bảo an toàn, ổn định và sẵn sàng phát hành hoàn toàn vào sản xuất.

Để tìm hiểu thêm về CI/CD phi máy chủ, hãy tham khảo tài liệu của chúng tôi.

Câu hỏi: Làm thế nào để bắt đầu xây dựng ứng dụng serverless?

Để bắt đầu, hãy truy cập bảng điều khiển AWS Lambda và tải xuống một trong các bản kế hoạch của chúng tôi. Tệp tải xuống sẽ bao gồm một tệp AWS SAM (xác định các tài nguyên của AWS trong ứng dụng của bạn) và một tệp .ZIP (chứa mã của hàm của bạn). Sau đó, bạn có thể sử dụng các lệnh AWS CloudFormation để đóng gói và triển khai ứng dụng phi máy chủ mà bạn vừa tải xuống. Để biết thêm chi tiết, hãy tham khảo tài liệu của chúng tôi.

Câu hỏi: Làm thế nào để điều phối lệnh gọi giữa nhiều hàm AWS Lambda?

Bạn có thể sử dụng AWS Step Functions để điều phối một loạt các hàm AWS Lambda theo trình tự cụ thể. Bạn có thể gọi ra các hàm Lambda theo cách tuần tự, chuyển đầu ra của một hàm đến hàm khác, hoặc chuyển song song và Step Functions sẽ giúp bạn giữ nguyên trạng thái trong các thao tác thực thi.

Câu hỏi: Làm thế nào để xử lý sự cố cho ứng dụng phi máy chủ?

Bạn có thể cho phép hàm Lambda dò vết thông qua AWS X-Ray bằng cách bổ sung các quyền X-Ray cho vai trò thực thi của hàm Lambda và chuyển “tracing mode” (chế độ dò vết) của hàm sang “active”(hoạt động). Khi X-Ray được kích hoạt cho hàm Lambda, AWS Lambda sẽ phát thông tin dò vết đến X-Ray về chi phí dịch vụ Lambda phát sinh khi gọi hàm của bạn. Hoạt động này sẽ cung cấp cho bạn các thông tin chuyên sâu như chi phí dịch vụ Lambda, thời gian khởi tạo hàm và thời gian thực thi hàm. Ngoài ra, bạn có thể đưa X-Ray SDK vào trong gói triển khai Lambda để tạo các đoạn vết của riêng mình, chú thích cho các vết hoặc xem các đoạn vết cho các lời gọi xuôi chiều được thực hiện từ hàm Lambda. X-Ray SDK hiện đã có sẵn cho Node.js và Java. Hãy tham khảo Khắc phục sự cố ứng dụng dựa trên Lambda để tìm hiểu thêm. Phí AWS X-Ray sẽ áp dụng.

Câu hỏi: Tôi có thể xây dựng các ứng dụng serverless kết nối với cơ sở dữ liệu quan hệ không?

Có. Bạn có thể sử dụng Amazon RDS Proxy, một proxy cơ sở dữ liệu có độ sẵn sàng cao quản lý hàng ngàn kết nối đồng thời với cơ sở dữ liệu quan hệ, để xây dựng các ứng dụng severless dựa trên Lambda an toàn và có quy mô linh hoạt kết nối với cơ sở dữ liệu quan hệ. Hiện tại, RDS Proxy hỗ trợ các cơ sở dữ liệu MySQL và Aurora. Bạn có thể bắt đầu sử dụng RDS Proxy thông qua bảng điều khiển Amazon RDS hoặc bảng điều khiển AWS Lambda. Các ứng dụng serverless sử dụng nhóm kết nối được quản lý toàn phần từ RDS Proxy sẽ được tính phí theo Giá RDS Proxy.

Câu hỏi: AWS SAM được cấp phép như thế nào?

Chỉ dẫn kỹ thuật có nguồn mở theo Apache 2.0 cho phép bạn và người khác áp dụng cũng như tích hợp AWS SAM vào các công cụ xây dựng, triển khai, giám sát và quản lý bằng một giấy phép có lợi cho hoạt động thương mại. Bạn có thể truy cập kho AWS SAM trên GitHub tại đây.

Hỗ trợ hình ảnh bộ chứa

Câu hỏi: Hỗ trợ hình ảnh bộ chứa cho AWS Lambda là gì?

AWS Lambda hiện cho phép bạn đóng gói và triển khai các hàm dưới dạng hình ảnh bộ chứa. Khách hàng có thể tận dụng sự linh hoạt và sự quen thuộc của công cụ bộ chứa, cũng như sự linh hoạt và đơn giản trong hoạt động của AWS Lambda để xây dựng các ứng dụng.

Câu hỏi: Tôi có thể dùng Hỗ trợ hình ảnh bộ chứa cho AWS Lambda như thế nào?

Bạn có thể bắt đầu với hình ảnh cơ sở do AWS cung cấp cho Lambda hoặc bằng cách sử dụng một trong những hình ảnh cộng đồng hoặc doanh nghiệp tư nhân ưa thích của bạn. Sau đó, chỉ cần sử dụng Docker CLI để xây dựng hình ảnh, tải nó lên Amazon ECR rồi tạo hàm bằng mọi công cụ và giao diện Lambda quen thuộc, ví dụ như Bảng điều khiển quản lý AWS, AWS CLI, AWS SDK, AWS SAM và AWS CloudFormation.

Câu hỏi: Những loại hình ảnh bộ chứa nào được hỗ trợ?

Bên cạnh các hình ảnh do Lambda cung cấp, bạn có thể triển khai hình ảnh cơ sở Linux của bên thứ ba (ví dụ: Alpine hoặc Debian) cho Lambda. AWS Lambda sẽ hỗ trợ mọi hình ảnh dựa trên các định dạng tệp kê khai hình ảnh sau: Docker Image Manifest V2 Schema 2 (được sử dụng với Docker phiên bản 1.10 trở lên) hoặc Open Container Initiative (OCI) Spec (v1.0 trở lên). Lambda hỗ trợ hình ảnh có kích cỡ lên đến 10 GB.

Câu hỏi: Tôi có thể sử dụng những hình ảnh cơ sở nào?

AWS Lambda cung cấp nhiều loại hình ảnh cơ sở mà khách hàng có thể mở rộng, đồng thời, khách hàng cũng có thể sử dụng các hình ảnh nền Linux ưa thích của mình với kích cỡ lên đến 10 GB.

Câu hỏi: Tôi có thể sử dụng công cụ bộ chứa nào để đóng gói và triển khai các hàm dưới dạng hình ảnh bộ chứa?

Bạn có thể sử dụng bất kỳ công cụ bộ chứa nào miễn là công cụ đó có hỗ trợ một trong các định dạng tệp kê khai hình ảnh bộ chứa sau: Docker Image Manifest V2 Schema 2 (được sử dụng với Docker phiên bản 1.10 trở lên) hoặc Thông số kỹ thuật Open Container Initiative (OCI) (v1.0 trở lên). Ví dụ: Bạn có thể sử dụng các công cụ bộ chứa gốc (ví dụ: docker run, docker compose, Buildah và Packer) để xác định các hàm của mình dưới dạng hình ảnh bộ chứa và triển khai tới Lambda.

Câu hỏi: Những tính năng AWS Lambda nào có sẵn cho các hàm được triển khai dưới dạng hình ảnh bộ chứa?

Mọi tính năng AWS Lambda hiện có, ngoại trừ các lớp Lambda và Ký mã, đều có thể được sử dụng với các hàm được triển khai dưới dạng hình ảnh bộ chứa. Sau khi được triển khai, AWS Lambda sẽ coi một hình ảnh là bất biến. Khách hàng có thể sử dụng các lớp bộ chứa trong khi xây dựng để đưa các phần phụ thuộc vào.

Câu hỏi: AWS Lambda có vá lỗi và cập nhật hình ảnh bộ chứa đã triển khai của tôi không?

Vào thời điểm này thì không. Hình ảnh của bạn, sau khi được triển khai tới AWS Lambda, sẽ không thay đổi. Dịch vụ sẽ không vá hay cập nhật hình ảnh. Tuy nhiên, AWS Lambda sẽ phát hành các hình ảnh cơ sở được sắp xếp cho toàn bộ thời gian hoạt động được hỗ trợ dựa trên môi trường được quản lý bởi Lambda. Những hình ảnh đã phát hành này sẽ được vá và cập nhật cùng với các bản cập nhật cho thời gian chạy được quản lý của AWS Lambda. Bạn có thể kéo và sử dụng hình ảnh cơ sở mới nhất từ DockerHub hoặc Amazon ECR Public, xây dựng lại hình ảnh bộ chứa của bạn và triển khai lên AWS Lambda thông qua Amazon ECR. Điều này cho phép bạn xây dựng và kiểm tra các hình ảnh và thời gian hoạt động được cập nhật, trước khi triển khai hình ảnh vào sản xuất.

Câu hỏi: Sự khác biệt giữa các hàm được tạo bằng cách sử dụng lưu trữ ZIP và hình ảnh bộ chứa là gì?

Có ba điểm khác biệt chính giữa các hàm được tạo bằng lưu trữ ZIP và hình ảnh bộ chứa:

  1. Các hàm được tạo bằng cách sử dụng lưu trữ ZIP có kích cỡ gói mã tối đa là 250 MB đã giải nén và các hàm được tạo bằng hình ảnh bộ chứa có kích thước hình ảnh tối đa là 10 GB. 
  2. Lambda sử dụng Amazon ECR làm bộ lưu trữ mã cơ bản cho các hàm được xác định là hình ảnh bộ chứa, do đó, một hàm có thể không được thu hồi khi hình ảnh cơ bản bị xóa khỏi ECR. 
  3. Các hàm ZIP được vá tự động trong các bản sửa lỗi và bảo mật thời gian hoạt động mới nhất. Các hàm được định nghĩa là hình ảnh bộ chứa đều bất biến và khách hàng phải chịu trách nhiệm về các thành phần được đóng gói trong hàm của họ. Khách hàng có thể tận dụng các hình ảnh cơ sở do AWS cung cấp được AWS cập nhật thường xuyên để bảo mật và sửa lỗi, bằng cách sử dụng các bản vá mới nhất hiện có.

Câu hỏi: Có sự khác biệt nào về hiệu năng giữa các hàm được định nghĩa là zip và hình ảnh bộ chứa không?

Không - AWS Lambda đảm bảo rằng cấu hình hiệu năng cho các hàm được đóng gói dưới dạng hình ảnh bộ chứa cũng giống như các cấu hình được đóng gói dưới dạng lưu trữ ZIP, bao gồm cả thời gian khởi động thường tính bằng mili giây.

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi triển khai các hàm Lambda dưới dạng hình ảnh bộ chứa?

Không có phí bổ sung cho việc đóng gói và triển khai các hàm dưới dạng hình ảnh bộ chứa lên AWS Lambda. Khi bạn thu hồi hàm được triển khai dưới dạng hình ảnh bộ chứa, bạn sẽ thanh toán cho các yêu cầu và thời lượng thực thi theo giá thông thường. Để tìm hiểu thêm, hãy xem giá AWS Lambda. Bạn sẽ bị tính phí lưu trữ hình ảnh bộ chứa của mình trong Amazon ECR với mức giá ECR tiêu chuẩn. Để tìm hiểu thêm, hãy xem giá Amazon ECR.

Câu hỏi: Lambda Runtime Interface Emulator (RIE) là gì?

Lambda Runtime Interface Emulator là một proxy API Thời gian chạy của Lambda, cho phép khách hàng kiểm thử cục bộ hàm Lambda được đóng gói dưới dạng hình ảnh bộ chứa. Đây là một máy chủ web gọn nhẹ chuyển đổi yêu cầu HTTP thành sự kiện JSON và mô phỏng API thời gian chạy của Lambda. Thành phần này cho phép bạn kiểm thử cục bộ các hàm của mình bằng các công cụ quen thuộc như cURL và Docker CLI (khi kiểm thử các hàm được đóng gói dưới dạng hình ảnh bộ chứa). Lambda Runtime Interface Emulator cũng đơn giản hóa việc chạy ứng dụng của bạn trên các dịch vụ điện toán bổ sung. Bạn có thể đưa Lambda Runtime Interface Emulator vào trong hình ảnh bộ chứa của mình để thành phần này chấp nhận các yêu cầu HTTP nguyên bản thay vì các sự kiện JSON cần thiết để triển khai tới Lambda. Thành phần này không mô phỏng trình điều phối của Lambda hay cấu hình bảo mật và xác thực. Runtime Interface Emulator có nguồn mở trên GitHub. Bạn có thể bắt đầu bằng cách tải xuống và cài đặt thành phần này lên máy cục bộ của mình.

Câu hỏi: Tại sao tôi cần Lambda Runtime Interface Emulator (RIE) trong quá trình kiểm thử cục bộ?

API Thời gian hoạt động của Lambda trong dịch vụ Lambda đang chạy chấp nhận các sự kiện JSON và trả về phản hồi. Lambda Runtime Interface Emulator cho phép hàm được đóng gói dưới dạng hình ảnh bộ chứa để chấp nhận các yêu cầu HTTP trong quá trình kiểm thử cục bộ bằng các công cụ như cURL và hiển thị chúng qua cùng một giao diện cục bộ cho hàm. Thành phần này cho phép bạn sử dụng lệnh docker run hoặc docker-compose up để kiểm thử cục bộ ứng dụng lambda của bạn.

Câu hỏi: Tôi có thể dùng trình giả lập để kiểm thử cục bộ hành vi hàm nào?

Bạn có thể sử dụng trình giả lập để kiểm thử xem mã hàm của bạn có tương thích với môi trường Lambda, chạy thành công và cung cấp đầu ra mong đợi hay không. Ví dụ: Bạn có thể kiểm thử sự kiện thử nghiệm từ các nguồn sự kiện khác nhau. Bạn cũng có thể sử dụng thành phần này để kiểm tra tiện ích mở rộng và tác nhân được tích hợp trong hình ảnh bộ chứa dựa trên API Tiện ích mở rộng của Lambda.

Câu hỏi: Runtime Interface Emulator (RIE) sẽ giúp tôi chạy hình ảnh tương thích với Lambda trên các dịch vụ điện toán bổ sung như thế nào?

Khách hàng có thể thêm Runtime Interface Emulator làm điểm nhập cho hình ảnh bộ chứa hoặc đóng gói thành phần này dưới dạng một thành phần đồng hành để đảm bảo hình ảnh bộ chứa hiện chấp nhận các yêu cầu HTTP thay vì các sự kiện JSON. Điều này đơn giản hóa các thay đổi cần thiết để chạy hình ảnh bộ chứa trên các dịch vụ điện toán bổ sung. Khách hàng sẽ chịu trách nhiệm đảm bảo tuân theo tất cả các biện pháp tốt nhất về bảo mật, hiệu năng và tính đồng thời cho môi trường họ chọn. RIE được đóng gói sẵn trong các hình ảnh do AWS Lambda cung cấp và có sẵn theo mặc định trong AWS SAM CLI. Các nhà cung cấp hình ảnh cơ sở có thể dùng tài liệu này để cung cấp trải nghiệm tương tự cho hình ảnh cơ sở của họ.

Câu hỏi: Làm cách nào để triển khai ứng dụng được chứa trong bộ chứa hiện có của tôi cho AWS Lambda?

Bạn có thể triển khai một ứng dụng được chứa trong AWS Lambda nếu ứng dụng đáp ứng các yêu cầu dưới đây:

  1. Hình ảnh bộ chứa phải triển khai API Thời gian hoạt động của Lambda. Chúng tôi đã tạo nguồn mở cho một bộ các gói phần mềm, Máy khách giao diện thời gian hoạt động (RIC), có tác dụng triển khai API Hoạt động nhằm cho phép bạn mở rộng liền mạch các hình ảnh cơ sở ưa thích của mình để tương thích với Lambda.
  2. Hình ảnh bộ chứa phải chạy được trên hệ thống tệp chỉ đọc. Mã hàm của bạn có thể truy cập 512 MB dung lượng lưu trữ của thư mục /tmp có thể ghi. Nếu bạn đang sử dụng hình ảnh yêu cầu thư mục gốc có thể ghi, hãy định cấu hình hình ảnh để ghi vào thư mục /tmp.
  3. Người dùng Lambda mặc định có thể đọc các tệp cần thiết để thực thi mã hàm. Lambda định nghĩa người dùng Linux mặc định có ít đặc quyền nhất dựa theo các biện pháp bảo mật tốt nhất. Bạn cần xác minh rằng mã ứng dụng của mình không dựa vào các tệp bị hạn chế thực thi bởi những người dùng Linux khác.
  4. Đây là một hình ảnh bộ chứa nền Linux.

AWS Lambda SnapStart

Câu hỏi: AWS Lambda SnapStart là gì?
 
AWS Lambda SnapStart mang lại hiệu suất khởi động hàm nhanh hơn tới 10 lần cho Java. Đối với các hàm theo yêu cầu, giai đoạn Khởi tạo (trong đó AWS Lambda tải mã của hàm và khởi tạo các thành phần phụ thuộc bên ngoài) là nguyên nhân lớn nhất gây ra độ trễ khởi động và xảy ra trong lệnh gọi đầu tiên. Với Lambda SnapStart, Lambda khởi tạo mã hàm khởi tạo một lần trước khi bạn xuất bản phiên bản hàm, thay vì khi bạn gọi hàm lần đầu tiên. Sau đó, Lambda tạo bản kết xuất nhanh và lưu vào bộ nhớ đệm trạng thái đĩa và bộ nhớ của môi trường thực thi đã khởi tạo. Khi bạn gọi hàm - và khi hàm tăng quy mô theo tài nguyên - Lambda khôi phục hàm từ bản kết xuất nhanh được lưu trong bộ nhớ đệm thay vì khởi tạo hàm từ đầu.
 
Câu hỏi: Tôi nên cấu hình hàm Lambda của mình như thế nào để sử dụng Lambda SnapStart?
 
Lambda SnapStart là cấu hình mức hàm đơn giản có thể được cấu hình cho các hàm Java 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 AWS (CLI), AWS SDK, Bộ phát triển đám mây AWS (CDK), AWS CloudFormation, và Mô hình ứng dụng phi máy chủ AWS (SAM). 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 ích 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, vui lòng xem tài liệu.
 
Câu hỏi: Làm thế nào để lựa chọn giữa Lambda SnapStart và Tính đồng thời được cung cấp (PC)?

Lambda SnapStart là tính năng tối ưu hóa hiệu suất, giúp các hàm Java của bạn đạt được thời gian khởi động nhanh hơn gấp tới 10 lầ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. Lambda SnapStart có phạm vi hoạt động rộng rãi trên tất cả các hàm trong ứng dụng hoặc tài khoản của bạn mà không tính thêm phí. Khi một khách hàng phát hành một phiên bản hàm với Lambda SnapStart, mã hàm được khởi tạo trước, thay vì được khởi tạo trong lệnh gọi đầu tiên. Sau đó, Lambda tạo bản kết xuất nhanh của môi trường thực thi đã khởi tạo và duy trì bản kết xuất nhanh trong bộ nhớ đệm phân bậc để truy cập với độ trễ thấp. Khi hàm được gọi lần đầu và sau đó được điều chỉnh quy mô, Lambda khôi phục hàm từ bản kết xuất nhanh được lưu trong bộ nhớ đệm thay vì khởi tạo từ đầu, giúp giảm độ trễ khởi động.

Mặc dù làm giảm độ trễ khởi động, Lambda SnapStart chỉ là công cụ tối ưu hóa nỗ lực cao 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.

Câu hỏi: Lambda SnapStart hỗ trợ những thời gian chạy nào?
 
Lambda SnapStart hỗ trợ thời gian chạy Java 11. Các phiên bản Java trong tương lai sẽ được hỗ trợ sau khi được phát hành. Để biết tất cả các thời gian chạy mà Lambda hỗ trợ, vui lòng tham khảo tài liệu thời gian chạy Lambda.
 
Câu hỏi: Tôi có thể kích hoạt cả Lambda SnapStart và PC trên cùng một hàm không?

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âu hỏi: Tôi có thể định cấu hình hàm Lambda SnapStart bằng đám mây riêng ảo (VPC) không?
 
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âu hỏi: Tôi có thể cấu hình Lambda SnapStart trên cả hai kiến trúc x86 và Arm không?

Không. Bạn chỉ có thể cấu hình Lambda SnapStart cho các hàm chạy trên kiến trúc x86 tại thời điểm này.
 
Câu hỏi: Tôi có thể kích hoạt Lambda SnapStart với Hệ thống tệp linh hoạt của Amazon (EFS) không?

Không. Bạn không thể kích hoạt Lambda SnapStart với Amazon EFS tại thời điểm này.
 
Câu hỏi: Tôi có thể kích hoạt Lambda SnapStart với dung lượng lưu trữ tạm thời (/tmp) trên 512 MB không?
 
Không. Bạn không thể kích hoạt Lambda SnapStart với dung lượng lưu trữ tạm thời (/tmp) trên 512 MB tại thời điểm này.
 
Câu hỏi: Quá trình lưu vào bộ nhớ đệm và khôi phục từ bản kết xuất nhanh có cân nhắc về khả năng tương thích của phần mềm không?

Có. Nếu mã của bạn có trạng thái duy nhất, bạn cần đánh giá khả năng phục hồi của mã đối với các hoạt động của bản kết xuất nhanh (chẳng hạn như sao chép và khôi phục). Để tìm hiểu thêm về các cân nhắc về tính duy nhất với Lambda SnapStart, vui lòng tham khảo tài liệublog để hiểu về tính duy nhất trong các bản kết xuất nhanh VM với Lambda SnapStart.

Câu hỏi: Tôi có thể thực thi mã của riêng mình trước khi tạo bản kết xuất nhanh hoặc khi hàm được khôi phục từ bản kết xuất nhanh không?

Có. Bạn có thể triển khai logic phần mềm của riêng mình trước khi tạo (tạo điểm kiểm tra) bản kết xuất nhanh và sau khi khôi phục bản kết xuất nhanh bằng hook thời gian chạy. Để tìm hiểu thêm, vui lòng tham khảo tài liệu Lambda SnapStart.

Câu hỏi: Tôi có phải trả phí cho Lambda SnapStart không?

Không. Bạn sẽ không bị tính thêm phí khi kích hoạt Lambda SnapStart. Phí bạn phải trả dựa trên số lượng yêu cầu cho các hàm và thời lượng xử lý mã của bạn, theo Giá Lambda hiện hành. Phí thời lượng áp dụng cho mã chạy trong trình xử lý hàm và hook thời gian chạy, cũng như mã khởi tạo được khai báo bên ngoài trình xử lý. Xin lưu ý rằng AWS Lambda có thể phục hồi các môi trường thực thi bằng các bản vá bảo mật và chạy lại mã khởi tạo của bạn. Để biết thêm chi tiết, hãy xem tài liệu Mô hình lập trình Lambda.

Câu hỏi: Với Lambda SnapStart, bản kết xuất nhanh của phiên bản hàm đã phát hành sẽ được lưu vào bộ nhớ đệm trong bao lâu?

Với Lambda SnapStart, Lambda lưu giữ bản kết xuất nhanh của môi trường thực thi đã khởi tạo cho ba phiên bản hàm đã phát hành gần đây nhất, miễn là các phiên bản đã phát hành tiếp tục nhận được các lệnh gọi. Bản kết xuất nhanh liên kết với phiên bản hàm đã phát hành sẽ hết hạn nếu không hoạt động trong hơn 14 ngày.

Câu hỏi: Làm thế nào để tôi có thể mã hóa bản kết xuất nhanh của môi trường thực thi đã khởi tạo được tạo bởi Lambda SnapStart?

Bản kết xuất nhanh được mã hóa mặc định với các khóa của Dịch vụ quản lý khóa của AWS (KMS) duy nhất cho từng khách hàng và được dịch vụ Lambda sở hữu và quản lý. Khách hàng cũng có thể mã hóa bản kết xuất nhanh bằng khóa KMS được khách hàng sở hữu và quản lý.

Câu hỏi: Có giới hạn thời gian đối với quá trình khởi tạo mã của tôi với Lambda SnapStart không?

Khoảng thời gian khởi tạo tối đa được phép cho Lambda SnapStart sẽ khớp với khoảng thời gian chờ thực thi mà bạn đã cấu hình cho hàm của bạn. Giới hạn thời gian chờ thực thi được cấu hình tối đa cho một hàm là 15 phút.
 

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

Câu hỏi: Tính đồng thời được cung cấp của AWS Lambda là gì?

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 serverless. 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 nhằm đáp ứng trong vài mili giây cho các hàm của bạn.

Câu hỏi: Làm thế nào để thiết lập và quản lý Tính đồng thời được cung cấp?

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.

Câu hỏi: Tôi có cần thay đổi mã nếu muốn sử dụng Tính đồng thời được cung cấp không?

Bạn không cần phải thay đổi gì với mã để sử dụng Tính đồng thời được cung cấp. Tính năng này hoạt động liền mạch với tất cả các hàm và thời gian chạy hiện có. Không có thay đổi nào đối với mô hình gọi và thực thi của Lambda khi sử dụng Tính đồng thời được cung cấp.

Câu hỏi: Tôi sẽ bị tính phí như thế nào đối với Tính đồng thời được cung cấp?

Tính đồng thời được cung cấp bổ sung một khía cạnh giá mới để khởi tạo hàm, đó là giá ‘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ề cách định giá tính năng Tính đồng thời được cung cấp, hãy xem mục Định giá AWS Lambda.

Câu hỏi: Khi nào nên sử dụng Tính đồng thời được cung cấp?

Tính đồng thời được cung cấp sẽ 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 di động, API được gọi ra đồng thời 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 hoàn toàn, khi nhu cầu giảm.

Câu hỏi: Điều gì xảy ra nếu một hàm nhận được số lần gọi cao hơn mức được cấu hình của Tính đồng thời được cung cấp?

Nếu tính đồng thời của một hàm đạt đến mức được cấu hình thì các lần gọi tiếp theo của hàm sẽ mang các đặc tính về độ trễ và quy mô của các hàm Lambda thông thường. Bạn có thể giới hạn hàm chỉ mở rộng đến mức được cấu hình. Làm như vậy sẽ ngăn không để hàm vượt quá mức được cấu hình của Tính đồng thời được cung cấp. Đây là một cơ chế để ngăn sự biến động không mong muốn trong ứng dụng khi nhu cầu vượt quá mức dự kiến.

Các hàm AWS Lambda do bộ xử lý Graviton2 cung cấp

Câu hỏi: Bộ xử lý Graviton2 cung cấp những hàm AWS Lambda nào?

AWS Lambda cho phép bạn chạy các hàm của mình trên những bộ xử lý dựa trên x86 hoặc Arm. Bộ xử lý AWS Graviton2 được Amazon Web Services xây dựng tùy chỉnh, sử dụng lõi Arm Neoverse 64 bit để đem đến hiệu quả chi phí tối ưu cho khối lượng công việc đám mây của bạn. Khách hàng nhận được những lợi thế tương tự như của AWS Lambda, chạy mã mà không cần cung cấp hoặc quản lý máy chủ, tự động thay đổi quy mô, tính khả dụng cao và chỉ trả tiền cho tài nguyên sử dụng.

Câu hỏi: Tại sao tôi nên sử dụng các hàm AWS Lambda do bộ xử lý Graviton2 cung cấp?

Các hàm AWS Lambda do Graviton2 cung cấp, sử dụng kiến trúc của bộ xử lý dựa trên Arm do AWS thiết kế, có mục tiêu mang tới hiệu quả chi phí tốt hơn tới 34% so với những hàm chạy trên các bộ xử lý x86, dành 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ý luồng 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 suất năng lượng cao nhất hiện có tại AWS, các hàm của Graviton2 có thể hỗ trợ cho những ứng dụng phi máy chủ tối quan trọng. Khách hàng có thể cấu hình cho cả hàm hiện có và hàm mới nhắm mục tiêu tới bộ xử lý Graviton2. Khách hàng có thể triển khai các hàm chạy trên Graviton2 dưới dạng tệp zip hoặc hình ảnh bộ chứa.

Câu hỏi: Làm thế nào để cấu hình các hàm để chạy trên bộ xử lý Graviton2?

Bạn có thể cấu hình các hàm để chạy trên Graviton2 thông qua Bảng điều khiển quản lý AWS, API AWS Lambda, AWS CLI và AWS CloudFormation bằng cách đặt cờ kiến trúc thành ‘arm64’ cho hàm của bạn.

Câu hỏi: Làm thế nào để triển khai ứng dụng được xây dựng bằng các hàm do bộ xử lý Graviton2 cung cấp?

Không có sự thay đổi nào giữa các hàm dựa trên x86 và dựa trên Arm. Bạn chỉ cần tải lên mã của mình qua Bảng điều khiển quản lý AWS, tệp zip hoặc hình ảnh bộ chứa, AWS Lambda sẽ tự động chạy mã của bạn khi được kích hoạt mà không yêu cầu bạn cung cấp hoặc quản lý cơ sở hạ tầng.

Câu hỏi: Một ứng dụng có thể sử dụng các hàm do cả bộ xử lý Graviton2 và bộ xử lý x86 cung cấp không?

Một ứng dụng có thể chứa các hàm chạy trên cả hai kiến trúc. AWS Lambda cho phép bạn thay đổi kiến trúc (‘x86_64’ hoặc ‘arm64’) cho phiên bản mới nhất của hàm. Không thể thay đổi kiến trúc sau khi đã tạo một phiên bản cụ thể cho hàm.

Câu hỏi: AWS Lambda có hỗ trợ các hình ảnh bộ chứa đa kiến trúc không?

Không. Mỗi phiên bản hàm chỉ có thể sử dụng một hình ảnh bộ chứa duy nhất.

Q: Tôi có thể tạo Lớp AWS Lambda nhắm mục tiêu tới các hàm do bộ xử lý AWS Graviton2 cung cấp không?

Có. Có thể nhắm mục tiêu các lớp và tiện ích mở rộng tới những kiến trúc tương thích với ‘x86_64’ hoặc ‘arm64’. Kiến trúc mặc định cho các hàm và lớp là ‘x86_64’.

Câu hỏi: Các hàm Lambda chạy trên bộ xử lý Graviton2 hỗ trợ những ngôn ngữ và thời gian chạy nào?

Khi khởi chạy, khách hàng có thể sử dụng ảnh Python, Node.js, Java, Ruby, .Net Core, Custom Runtime (có sẵn.al2) và OCI Base. Để tìm hiểu thêm, vui lòng xem Thời gian chạy AWS Lambda.

Câu hỏi: Các hàm AWS Lambda do bộ xử lý AWS Graviton2 cung cấp có mức giá ra sao? Bậc miễn phí AWS Lambda có áp dụng cho các hàm do Graviton2 cung cấp không?

Các hàm AWS Lambda do bộ xử lý AWS Graviton2 cung cấp có mức giá rẻ hơn 20% so với các hàm Lambda dựa trên x86. Bậc miễn phí Lambda áp dụng cho các hàm AWS Lambda do kiến trúc dựa trên x86 và Arm cung cấp.

Câu hỏi: Tôi nên chọn bộ xử lý Graviton2 hay bộ xử lý x86 để chạy các hàm?

Mỗi khối lượng công việc đều có tính duy nhất và chúng tôi khuyên khách hàng nên kiểm tra các hàm của mình để xác định mức độ cải thiện hiệu suất chi phí mà họ có thể thấy. Để làm được điều đó, chúng tôi khuyên bạn nên sử dụng công cụ Điều chỉnh công suất AWS Lambda. Chúng tôi khuyên bạn nên bắt đầu với phần phụ trợ, dữ liệu và xử lý luồng của web và thiết bị di động khi kiểm tra khối lượng công việc của mình để có thể tăng hiệu suất chi phí.

Câu hỏi: Tôi có cần một máy phát triển dựa trên Arm để tạo, dựng và kiểm tra các hàm được cung cấp cục bộ bởi bộ xử lý Graviton2 không?

Các ngôn ngữ được thông dịch như Python, Java và Node thường không yêu cầu biên dịch lại, trừ khi mã của bạn tham chiếu đến các thư viện sử dụng những thành phần kiến trúc cụ thể. Trong những trường hợp đó, bạn cần cung cấp các thư viện được nhắm mục tiêu đến arm64. Để biết thêm chi tiết, vui lòng xem trang Bắt đầu sử dụng AWS Graviton. Các ngôn ngữ không được thông dịch sẽ yêu cầu biên dịch mã của bạn để nhắm mục tiêu tới arm64. Trong khi các trình biên dịch hiện đại hơn sẽ tạo ra các mã đã biên dịch cho arm64, bạn sẽ cần triển khai mã này vào một môi trường dựa trên arm để kiểm tra. Để tìm hiểu thêm về cách sử dụng các hàm Lambda bằng Graviton2, vui lòng xem tài liệu.

Amazon EFS cho AWS Lambda

Câu hỏi: Amazon EFS cho AWS Lambda là gì?

Với Amazon Elastic File System (Amazon EFS) cho AWS Lambda, khách hàng có thể đọc, ghi và lưu trữ khối lượng dữ liệu lớn ở hầu hết mọi quy mô bằng cách sử dụng một hệ thống tệp NFS linh hoạt được quản lý toàn phần có thể thay đổi quy mô theo nhu cầu mà không cần cung cấp hoặc quản lý dung lượng. Trước đây, các nhà phát triển đã thêm mã vào các hàm của mình để tải dữ liệu từ S3 hoặc cơ sở dữ liệu xuống kho lưu trữ tạm thời cục bộ, được giới hạn ở 512 MB. Với EFS cho Lambda, các nhà phát triển không cần phải viết mã để tải dữ liệu xuống kho lưu trữ tạm thời để xử lý.

Câu hỏi: Tôi thiết lập Amazon EFS cho Lambda bằng cách nào?

Các nhà phát triển có thể dễ dàng kết nối hệ thống tệp EFS hiện có với một hàm Lambda thông qua Điểm truy cập EFS bằng cách sử dụng bảng điều khiển, CLI hoặc SDK. Khi hàm được gọi lần đầu tiên, hệ thống tệp sẽ tự động được gắn và cung cấp cho mã hàm. Bạn có thể tìm hiểu thêm trong tài liệu.

Câu hỏi: Tôi có cần cấu hình hàm của mình với các cài đặt VPC để có thể sử dụng hệ thống tệp Amazon EFS không?

Có. Các mục tiêu gắn kết cho Amazon EFS được liên kết với một mạng con trong một VPC. Hàm AWS Lambda cần được cấu hình để truy cập vào VPC đó.

Câu hỏi: Ai nên sử dụng Amazon EFS cho Lambda?

Sử dụng EFS for Lambda thường lý tưởng để xây dựng các ứng dụng máy học hoặc tải các tệp hoặc mô hình tham chiếu lớn, xử lý hoặc sao lưu lượng lớn dữ liệu, lưu trữ nội dung web hoặc phát triển hệ thống xây dựng nội bộ. Khách hàng cũng có thể sử dụng EFS for Lambda để duy trì trạng thái giữa các yêu cầu gọi trong cùng một cấu trúc vi dịch vụ có trạng thái, trong luồng công việc Step Functions hoặc chia sẻ tệp giữa các ứng dụng phi máy chủ và các ứng dụng dựa trên bộ chứa hoặc phiên bản.

Câu hỏi: Dữ liệu của tôi có được mã hóa khi chuyển tiếp không?

Có. Mã hóa dữ liệu khi đang truyền sử dụng giao thức Bảo mật lớp vận chuyển (TLS) 1.2 theo tiêu chuẩn công nghiệp để mã hóa dữ liệu được gửi giữa các hàm AWS Lambda và các hệ thống tệp Amazon EFS.

Câu hỏi: Dữ liệu của tôi có được mã hóa khi lưu trữ không?

Khách hàng có thể cung cấp Amazon EFS để mã hóa dữ liệu ở trạng thái lưu trữ. Dữ liệu được mã hóa ở trạng thái lưu trữ sẽ được mã hóa trong khi ghi và được giải mã khi đọc, do đó, bạn không phải sửa đổi ứng dụng của mình. Các khóa mã hóa được quản lý bởi AWS Key Management Service (KMS), do đó, bạn không cần xây dựng và duy trì cơ sở hạ tầng quản lý khóa bảo mật.

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi sử dụng Amazon EFS cho AWS Lambda?

Việc sử dụng Amazon EFS cho AWS Lambda sẽ không bị tính thêm phí. Khách hàng sẽ trả mức giá tiêu chuẩn cho AWS Lambda và cho Amazon EFS. Khi sử dụng Lambda và EFS trong cùng một vùng sẵn sàng, khách hàng không bị tính phí truyền dữ liệu. Tuy nhiên, nếu sử dụng kết nối ngang hàng VPC để truy cập liên tài khoản, khách hàng sẽ phải chịu phí truyền dữ liệu. Để tìm hiểu thêm, vui lòng tham khảo mục Định giá.

Câu hỏi: Tôi có thể liên kết nhiều hệ thống tệp Amazon EFS với hàm AWS Lambda của mình không?

Không. Mỗi hàm Lambda sẽ có thể truy cập một hệ thống tệp EFS.

Câu hỏi: Tôi có thể sử dụng cùng một hệ thống tệp Amazon EFS trên nhiều hàm, bộ chứa và phiên bản không?

Có. Amazon EFS hỗ trợ các hàm Lambda, ECS, bộ chứa Fargate và các phiên bản EC2. Bạn có thể chia sẻ cùng một hệ thống tệp, đồng thời sử dụng chính sách IAM và Điểm truy cập để kiểm soát mỗi hàm, bộ chứa hoặc phiên bản có quyền truy cập.  

Các tiện ích mở rộng của Lambda

Câu hỏi: Các tiện ích mở rộng của AWS Lambda là gì?

Các tiện ích mở rộng của AWS Lambda cho phép bạn tích hợp Lambda với các công cụ yêu thích của bạn để giám sát, quan sát, bảo mật và quản trị. Các tiện ích mở rộng cho phép bạn và các nhà cung cấp dụng cụ ưa thích của bạn tham gia vào vòng đời của Lambda và tích hợp sâu hơn vào môi trường thực thi Lambda.

Câu hỏi: Các tiện ích mở rộng của Lambda hoạt động như thế nào?

Các tiện ích mở rộng là các quy trình cùng chạy trong môi trường thực thi của Lambda, đây là nơi thực thi mã hàm của bạn. Ngoài ra, chúng có thể chạy độc lập với chức năng gọi hàm - nghĩa là chúng bắt đầu trước khi hàm được khởi tạo, chạy song song với hàm, có thể chạy sau khi hoàn thành thực thi hàm và cũng có thể chạy trước khi dịch vụ Lambda tắt môi trường thực thi.

Câu hỏi: Tôi có thể sử dụng các tiện ích mở rộng của Lambda cho mục đích nào?

Bạn có thể sử dụng các tiện ích mở rộng cho 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ị từ AWS cũng như các đối tác sau: AppDynamics, Coralogix, Datadog, Dynatrace, Epsagon, HashiCorp, Honeycomb, Imperva, Lumigo, Check Point CloudGuard, New Relic, Thundra, Splunk, Sentry, Site24x7, Sumo Logic, AWS AppConfig, Amazon CodeGuru Profiler, Amazon CloudWatch Lambda Insights, AWS Distro for OpenTelemetry. Để tìm hiểu thêm về các tiện ích mở rộng này, hãy truy cập bài đăng trên blog ra mắt sản phẩm.

Câu hỏi: Làm cách nào để thiết lập và quản lý các tiện ích mở rộng của Lambda?

Bạn có thể triển khai các tiện ích mở rộng, sử dụng Lớp, trên một hoặc nhiều hàm Lambda bằng cách sử dụng Console, CLI hoặc các công cụ cơ sở hạ tầng dưới dạng mã như CloudFormation, AWS Serverless Application Model và Terraform. Để bắt đầu, hãy tham khảo tài liệu.

Câu hỏi: Tôi có thể sử dụng các tiện ích mở rộng của AWS Lambda với những thời gian chạy nào?

Bạn có thể xem danh sách thời gian chạy hỗ trợ các tiện ích mở rộng tại đây.

Câu hỏi: Các Tiện ích mở rộng có được tính vào giới hạn gói triển khai không?

Có, tổng kích thước đã giải nén của hàm và tất cả các Tiện ích mở rộng không được vượt quá giới hạn kích thước gói triển khai đã giải nén là 250 MB.

Câu hỏi: Có ảnh hưởng về hiệu năng đến việc sử dụng một tiện ích mở rộng không?

Các tiện ích mở rộng có thể ảnh hưởng đến hiệu năng của hàm vì chúng sử dụng chung các tài nguyên như CPU, bộ nhớ và dung lượng lưu trữ với hàm, và vì các tiện ích mở rộng được khởi tạo trước mã hàm. Ví dụ: nếu một tiện ích mở rộng thực hiện các hoạt động nặng về tính toán, bạn có thể thấy thời lượng thực thi hàm tăng lên vì các tiện ích mở rộng và mã hàm của bạn sử dụng chung tài nguyên CPU. Vì Lambda phân bổ CPU theo tỷ lệ dựa trên cài đặt bộ nhớ bạn chọn, bạn có thể thấy thời lượng thực thi và khởi chạy tăng lên ở cài đặt bộ nhớ thấp hơn khi nhiều tiến trình cạnh tranh để sử dụng cùng một tài nguyên CPU.

Bạn có thể sử dụng chỉ số PostRuntimeExecutionDuration để đo thời gian bổ sung của tiện ích mở rộng sau khi thực thi hàm, đồng thời bạn có thể sử dụng chỉ số MaxMemoryUsed để đo lường mức tăng của bộ nhớ đã sử dụng. Để hiểu tác động của một tiện ích mở rộng cụ thể, bạn cũng có thể sử dụng chỉ số Duration. Hiện tại, phản hồi về việc thực thi hàm được trả lại sau khi hoàn tất quá trình thực thi hàm và tiện ích mở rộng. Để tìm hiểu thêm, hãy tham khảo tài liệu dành cho nhà phát triển Lambda.

Câu hỏi: Tôi sẽ bị tính phí như thế nào cho việc sử dụng các tiện ích mở rộng của AWS Lambda?

Các tiện ích mở rộng chia sẻ cùng một mô hình thanh toán với các hàm Lambda. Khi sử dụng các hàm Lambda với tiện ích mở rộng, bạn trả tiền cho các yêu cầu được phân phối và thời gian điện toán kết hợp được sử dụng để chạy mã của bạn và tất cả tiện ích mở rộng, tăng dần theo mỗi 1 mili giây. Bạn sẽ bị tính phí cho thời gian điện toán theo giá thời lượng Lambda hiện có. Để tìm hiểu thêm, hãy tham khảogiá AWS Lambda.

Vòng đời Lambda được tạo thành từ ba giai đoạn riêng biệt: "tạo", khi AWS Lambda khởi tạo hàm, các phần phụ thuộc và tiện ích mở rộng; "gọi", khi Lambda thực thi hàm và mã mở rộng để phản hồi lại các trình kích hoạt; và "tắt", sau khi quá trình thực thi hàm hoàn tất, nhưng mã tiện ích mở rộng có thể vẫn đang thực thi và giai đoạn này có thể kéo dài tối đa 2 giây. Bạn sẽ bị tính phí cho thời gian điện toán được dùng để chạy mã tiện ích mở rộng trong cả 3 giai đoạn của vòng đời Lambda. Để tìm hiểu thêm về vòng đời của Lambda, vui lòng xem tài liệu về Môi trường thực thi Lambda.

Không tốn thêm phí để cài đặt tiện ích mở rộng, mặc dù các dịch vụ của đối tác có thể bị tính phí. Hãy tham khảo trang web của đối tác có liên quan để biết chi tiết.

Câu hỏi: Tôi có thể tạo riêng các tiện ích mở rộng của Lambda tùy chỉnh không?

Được, bằng cách sử dụng API Tiện ích mở rộng thời gian hoạt động của AWS Lambda. Truy cập vào tài liệu này để tìm hiểu thêm.

Câu hỏi: Các tiện ích mở rộng hoạt động như thế nào khi bật Tính đồng thời được cung cấp?

Tính đồng thời được cung cấp giúp các hàm của bạn luôn duy trì khởi tạo và sẵn sàng nhằm phản hồi trong vài mili giây. Khi được kích hoạt, Tính đồng thời được cung cấp cũng khởi tạo các tiện ích mở rộng và luôn giúp hàm sẵn sàng để thực thi đồng thời mã hàm.

Câu hỏi: Tiện ích mở rộng có các quyền nào?

Vì các Tiện ích mở rộng được thực thi trong cùng một môi trường với hàm Lambda, chúng có quyền truy cập vào các tài nguyên giống như của hàm, đồng thời hàm và tiện ích mở rộng cùng chia sẻ các quyền. Do đó, chúng cùng chia sẻ thông tin đăng nhập, vai trò cũng như các biến môi trường. Các tiện ích mở rộng có quyền truy cập chỉ đọc vào mã hàm đồng thời có thể đọc và ghi trong /tmp.

Câu hỏi: API phép đo từ xa của AWS Lambda là gì?

API phép đo từ xa của AWS Lambda cho phép bạn sử dụng các tiện ích mở rộng để thu thập dữ liệu về khả năng quan sát và giám sát nâng cao trực tiếp từ Lambda, rồi gửi dữ liệu đó đến đích bạn chọn.

Câu hỏi: API phép đo từ xa hoạt động như thế nào?

Dịch vụ Lambda tự động thu thập và truyền trực tuyến dữ liệu phép đo từ xa đến Amazon CloudWatch và AWS X-Ray. API phép đo từ xa cung cấp giao diện HTTP hoặc TCP đơn giản cho các tiện ích mở rộng để nhận cùng một dữ liệu phép đo từ xa cùng với các sự kiện vòng đời của môi trường thực thi Lambda, cùng với các chỉ số cấp độ lệnh gọi hàm. Các tiện ích mở rộng có thể sử dụng API phép đo từ xa để dùng các luồng đo từ xa này trực tiếp từ Lambda, sau đó xử lý, lọc và gửi đến bất kỳ điểm đến ưa thích nào.

Câu hỏi: Làm thế nào để bắt đầu sử dụng API phép đo từ xa?

Bạn có thể triển khai các tiện ích mở rộng hỗ trợ API phép đo từ xa cho các hàm Lambda bằng cách sử dụng Bảng điều khiến AWS Lambda, AWS CLI hoặc các công cụ Cơ sở hạ tầng dưới dạng mã như AWS CloudFormation, Mô hình ứng dụng phi máy chủ (SAM) AWS và Terraform. Bạn không phải thay đổi mã để sử dụng tiện ích mở rộng hỗ trợ API phép đo từ xa với hàm Lambda của mình. Chỉ cần thêm tiện ích mở rộng từ nhà cung cấp công cụ mà bạn chọn vào hàm Lambda.  Để bắt đầu với các tiện ích mở rộng từ Đối tác APN, hãy nhấp vào các đường liên kết được cung cấp trong bài đăng trên blog ra mắt sản phẩm. Bạn cũng có thể xây dựng tiện ích mở rộng của riêng mình có sử dụng API phép đo từ xa. Để tìm hiểu cách thức, hãy truy cập Hướng dẫn dành cho nhà phát triển AWS Lambda.

Câu hỏi: Việc sử dụng API phép đo từ xa có ảnh hưởng đến hiệu năng không?

Bạn chỉ có thể sử dụng API phép đo từ xa từ bên trong Tiện ích mở rộng AWS Lambda. Các tiện ích mở rộng có thể ảnh hưởng đến hiệu năng của hàm vì chúng sử dụng chung các tài nguyên như CPU, bộ nhớ và dung lượng lưu trữ với hàm. Việc sử dụng bộ nhớ sẽ gia tăng tuyến tính khi số lượng đăng ký API phép đo từ xa tăng vì mỗi đăng ký sẽ mở một bộ đệm bộ nhớ mới để lưu trữ dữ liệu phép đo từ xa. Tuy nhiên, bạn có thể tối ưu hóa việc sử dụng bộ nhớ bằng cách điều chỉnh cấu hình bộ đệm trong yêu cầu đăng ký API phép đo từ xa. Chúng tôi khuyến nghị các nhà cung cấp tiện ích mở rộng công bố mức tiêu thụ tài nguyên dự kiến để giúp các nhà phát triển hàm dễ dàng hơn trong việc chọn tiện ích mở rộng phù hợp. Vui lòng tham khảo tài liệu của nhà cung cấp tiện ích mở rộng để nắm rõ chi phí hiệu năng tiềm năng khi sử dụng tiện ích mở rộng của họ.

Câu hỏi: Tôi sẽ bị tính phí như thế nào cho việc sử dụng API phép đo từ xa?

Bạn không bị tính thêm phí khi sử dụng API phép đo từ xa của AWS Lambda. Các tiện ích mở rộng sử dụng API phép đo từ xa có cùng mô hình tính phí với các tiện ích mở rộng và hàm Lambda khác. Để tìm hiểu thêm về giá Tiện ích mở rộng, vui lòng xem trang giá của Lambda.

Câu hỏi: Việc sử dụng API phép đo từ xa có vô hiệu hóa hoạt động gửi nhật ký đến Bản ghi Amazon CloudWatch không?

Không. Theo mặc định, dịch vụ Lambda gửi tất cả nhật ký phép đo từ xa đến Bản ghi CloudWatch và việc sử dụng API phép đo từ xa không vô hiệu hóa hoạt động gửi đến Bản ghi CloudWatch.

URL hàm của Lambda

Câu hỏi: Các hàm AWS Lambda có hỗ trợ điểm cuối HTTP(S) không?

Có. Các hàm Lambda có thể được định cấu hình bằng URL hàm, một điểm cuối HTTPS được tích hợp sẵn có thể được gọi bằng trình duyệt, lệnh curl và bất kỳ máy khách HTTP nào. URL hàm là một cách thức đơn giản để bắt đầu xây dựng các hàm dễ dàng truy cập vào HTTPS.

Câu hỏi: Làm thế nào để cấu hình một URL hàm Lambda cho hàm của tôi?

Bạn có thể cấu hình URL hàm cho hàm của mình thông qua Bảng điều khiển quản lý AWS, API AWS Lambda, AWS CLI, AWS CloudFormation và AWS Serverless Application Model. URL hàm có thể được bật trên phiên bản không đủ tiêu chuẩn $LATEST của hàm của bạn, hay trên bất kỳ bí danh hàm nào. Để tìm hiểu thêm về cấu hình URL hàm, hãy xem tài liệu.

Câu hỏi: Làm thế nào để bảo mật URL hàm Lambda?

URL hàm Lambda được bảo mật với ủy quyền IAM theo mặc định. Bạn có thể lựa chọn tắt ủy quyền IAM để tạo một điểm cuối công khai hoặc nếu bạn dự định triển khai ủy quyền tùy chọn làm một phần logic kinh doanh của hàm.

Câu hỏi: Làm thế nào để gọi hàm của tôi bằng URL hàm Lambda?

Bạn có thể dễ dàng gọi hàm từ trình duyệt web của bạn bằng cách điều hướng đến URL Lambda, từ mã của ứng dụng máy khách bằng cách sử dụng thư viện HTTP, hoặc từ dòng lệnh bằng curl.

Câu hỏi: URL hàm Lambda có hoạt động với các bí danh và phiên bản hàm không?

Có. URL hàm Lambda có thể được bật trên một hàm hoặc bí danh hàm. Nếu không có bí danh nào được chỉ định, URL sẽ chỉ đến $LATEST theo mặc định. URL hàm không thể nhắm mục tiêu đến phiên bản hàm riêng lẻ.

Câu hỏi: Tôi có thể bật miền tùy chỉnh cho URL hàm Lambda không?

Các tên miền tùy chỉnh hiện không được hỗ trợ bởi URL hàm. Bạn có thể sử dụng miền tùy chỉnh với URL hàm của bạn bằng cách tạo một bản phân phối Amazon CloudFront và một CNAME để sắp xếp miền tùy chỉnh của bạn theo tên bản phân phối CloudFront. Sau đó, sắp xếp tên miền phân phối CloudFront của bạn để chuyển đến URL hàm của bạn như một nguồn.

Câu hỏi: URL hàm Lambda có thể được dùng để gọi một hàm trong VPC không?

Có, URL hàm có thể được dùng để gọi một hàm Lambda trong VPC.

Câu hỏi: URL hàm Lambda được tính phí như thế nào?

Bạn không bị tính thêm phí khi sử dụng URL hàm. Bạn có thể thanh toán giá tiêu chuẩn cho AWS Lambda. Để tìm hiểu thêm, vui lòng tham khảo Định giá AWS Lambda.

Lambda@Edge

Câu hỏi: Lambda@Edge là gì?

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 tớ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.

Câu hỏi: Tôi sử dụng Lambda@Edge như thế nào?

Để 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 vớ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âu hỏi: Tôi nên sử dụng Lambda@Edge khi nào?

Lambda@Edge được tối ưu hóa cho những trường hợp có đòi hỏi khắt khe về độ trễ, trong đó người 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.

Câu hỏi: Tôi có thể triển khai các hàm Lambda hiện có cho yêu cầu gọi từ khắp toàn cầu hay không?

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 các yêu cầu gọi từ khắp toàn cầu 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.

Câu hỏi: Có thể sử dụng những sự kiện Amazon CloudFront nào để kích hoạt các hàm?

Các hàm của bạn sẽ tự động kích hoạt để phản hồi với các sự kiện Amazon CloudFront sau:

  • Yêu cầu từ người xem – Sự kiện này diễn ra khi người dùng cuối hoặc một thiết bị trên Internet tạo ra một yêu cầu HTTP(S) tới CloudFront và yêu cầu này đi đến vị trí biên gần nhất với người dùng đó.
  • Phản hồi từ người xem – Sự kiện này diễn ra khi máy chủ CloudFront tại biên đã sẵn sàng để phản hồi người dùng cuối hoặc thiết bị đưa ra yêu cầu đó.
  • Yêu cầu từ nguồn – Sự kiện này diễn ra khi máy chủ biên CloudFront chưa có đối tượng được yêu cầu trong bộ lưu trữ đệm và yêu cầu của người xem đã sẵn sàng để được chuyển về máy chủ web nguồn backend của bạn (ví dụ: Amazon EC2, Application Load Balancer hay Amazon S3).
  • Phản hồi từ nguồn - Sự kiện này diễn ra khi máy chủ CloudFront tại biên nhận một phản hồi từ máy chủ web nguồn backend.

Câu hỏi: AWS Lambda@Edge có điểm gì khác biệt so với sử dụng AWS Lambda phía sau Amazon API Gateway?

Điểm khác biệt nằm ở chỗ API Gateway và Lambda là các dịch vụ khu vực. Sử dụng Lambda@EdgeAmazon CloudFront cho phép bạn thực thi logic trên nhiều khu vực AWS dựa theo vị trí người dùng cuối của bạn.

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

Câu hỏi: Các hàm AWS Lambda có độ sẵn sàng như thế nào?

AWS Lambda được thiết kế với khả năng tái tạo và độ dôi dư nhằm mang đến độ sẵn sàng cao cho bản thân dịch vụ và cho các hàm chạy trên dịch vụ. Khung thời gian bảo trì hay thời gian ngừng hoạt động theo lịch đều không cần đến.

Câu hỏi: Khi tôi thay đổi mã hay cấu hình, các hàm AWS Lambda của tôi có vẫn sẵn sàng hay không?

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.

Câu hỏi: Khi thực thi đồng loạt, hàm AWS Lambda có bị giới hạn số lượng hay không?

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 điều tiết 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 (truy cập vào đây để biết thông tin về giới hạn điều tiết 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 AWS Lambda, bạn có thể sử dụng chức năng này để dự trữ một phần nhỏ giới hạn đồng thời của tài khoản cho các hàm quan trọng hoặc tạo giới hạn tốc độ lưu lượng đối với các tài nguyên xuôi chiều.

Nếu bạn 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. 

Hỏi: Điều gì sẽ xảy ra nếu tài khoản của tôi vượt quá giới hạn tiết lưu mặc định về số lượng thao tác thực thi đồng thời?

Khi vượt quá giới hạn thực thi đồng thời tối đa, các hàm AWS Lambda đ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ờ.

Hỏi: Giới hạn thực thi đồng thời tối đa mặc định có được áp dụng ở cấp độ mỗi hàm không?

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ề Đồng thời đặt trước).

Hỏi: Các hàm AWS Lambda của tôi có thể điều chỉnh quy mô nhanh đến mức nào?

Mỗi hàm Lambda được gọi đồng bộ 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 có quy mô độc lập với các hàm khác.

Hỏi: Điều gì sẽ xảy ra nếu hàm Lambda bị lỗi khi đang xử lý một sự kiện?

Khi gặp lỗi, các hàm Lambda đang được gọi ra đồ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ờ.

Câu hỏi: Điều gì sẽ xảy ra nếu các yêu cầu gọi hàm Lambda sử dụng hết chính sách hiện có?

Khi vượt quá chính sách thử lại cho các yêu cầu gọi đồng thời, bạn có thể cấu hình một “hàng chờ thư chết” (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ó sẽ bị từ chối. Khi vượt quá chính sách thử lại đối với các yêu cầu gọi từ luồng, dữ liệu có thể đã hết hạn và do đó, bị từ chối.

Câu hỏi: Tôi có thể cấu hình những tài nguyên nào làm hàng chờ thư chết cho một hàm Lambda?

Bạn có thể cấu hình hàng chờ Amazon SQS hoặc chủ đề Amazon SNS làm hàng chờ thư chết.

Kiểm soát bảo mật và truy cập

Câu hỏi: Làm thế nào để cho phép hàm AWS Lambda của tôi truy cập các tài nguyên AWS khá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. Tham khảo Thiết lập AWS Lambda để tìm hiểu thêm về vai trò.

Câu hỏi: Làm thế nào để kiểm soát vùng lưu trữ Amazon S3 nào có thể gọi được hàm AWS Lambda nào?

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 AWS Lambda, 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 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.

Câu hỏi: Làm thế nào để kiểm soát được một hàm AWS Lambda có thể thăm dò bảng Amazon DynamoDB hoặc luồng Amazon Kinesis nào?

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 Lambda để tìm hiểu thêm.

Câu hỏi: Làm thế nào để kiểm soát một hàm AWS Lambda có thể thăm dò được hàng chờ Amazon SQS nào?

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 chờ. Nếu có cả hai chính sách, quyền nào hạn chế hơn sẽ áp dụng.

Hỏi: Làm thế nào để truy cập các tài nguyên trong Amazon VPC từ hàm AWS Lambda của tôi?

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 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.

Hỏi: Ký mã cho AWS Lambda là gì?

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 toà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.

Câu hỏi: Làm sao để tạo các thành phần lạ được ký kỹ thuật số?

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

Câu hỏi: Định cấu hình hàm Lambda như thế nào để bật tính năng ký mã?

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, API Lambda, 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.

Câu hỏi: AWS Lambda thực hiện kiểm tra chữ ký nào 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âu hỏi: Tôi có thể bật tính năng ký mã cho các hàm hiện có không?

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, API Lambda, AWS CLI, AWS CloudFormation và AWS SAM.

Câu hỏi: Có bất kỳ chi phí phát sinh nào khi sử dụng Ký mã cho AWS Lambda không?

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 tham khảo mục Định giá.

Biện pháp kiểm soát ghi nhật ký nâng cao

Câu hỏi: Những biện pháp kiểm soát ghi nhật ký nâng cao nào được hỗ trợ trên Lambda?

Để cung cấp cho bạn trải nghiệm ghi nhật ký đơ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 ghi nhật ký nâng cao như khả năng thu thập chính gốc 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.

Câu hỏi: Tôi có thể sử dụng các biện pháp kiểm soát ghi nhật ký nâng cao để làm gì?

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 ghi nhật ký 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.

Câu hỏi: Làm cách nào để sử dụng các biện pháp kiểm soát ghi nhật ký nâng cao?

Bạn có thể chỉ định các biện pháp kiểm soát ghi nhật ký 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 ghi nhật ký nâng cao hoặc Hướng dẫn dành cho nhà phát triển của Lambda.

Câu hỏi: Tôi có thể sử dụng thư viện ghi nhật ký của riêng mình để tạo bản ghi có cấu trúc JSON cho hàm Lambda của mình không?

Có, bạn có thể sử dụng thư viện ghi nhật ký 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ó cấu trúc JSON.

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi sử dụng các biện pháp kiểm soát ghi nhật ký nâng cao?

Bạn không mất thêm phí khi sử dụng các biện pháp kiểm soát ghi nhật ký 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 định giá CloudWatch để biết chi tiết về giá bản ghi.

Hàm AWS Lambda trong Java

Câu hỏi: Tôi biên soạn mã Java của hàm AWS Lambda bằng cách nào?

Bạn có thể sử dụng các công cụ tiêu chuẩn như Maven hoặc Gradle để biên soạn hàm Lambda. Quy trình xây dựng của bạn phải tương đồng với quy trình mà bạn sẽ sử dụng để biên soạn mã Java bất kỳ tùy thuộc vào AWS SDK. Chạy công cụ biên soạn Java trên các tệp nguồn và đưa AWS SDK 1.9 hoặc mới hơn vào sử dụng cùng với các quan hệ phụ thuộc bắc cầu trên classpath. Để biết thêm chi tiết, hãy xem tài liệucủa chúng tôi.

Câu hỏi: Môi trường JVM mà Lambda sử dụng để thực thi hàm là gì?

Lambda cung cấp bản dựng Amazon Linux openjdk 1.8.

Hàm AWS Lambda trong Node.js

Câu hỏi: Tôi có thể sử dụng các gói với AWS Lambda không?

Có. Bạn có thể sử dụng các gói NPM cũng như các gói tùy chỉnh. Tìm hiểu thêm ở đây.

Câu hỏi: Tôi có thể thực thi các chương trình khác từ trong phạm vi hàm AWS Lambda viết bằng Node.js hay không?

Có. Sandbox tích hợp sẵn của Lambda cho phép bạn chạy các tập lệnh xử lý theo lô (“shell”), các thời gian chạy ngôn ngữ khác, lịch trình tiện ích và các tệp thực thi. Tìm hiểu thêm ở đây.

Câu hỏi: Các mô-đun gốc có sử dụng được với các hàm AWS Lambda viết bằng Node.js hay không?

Có. Bất cứ mô-đun gốc nào có liên kết về mặt thống kê đều có thể đưa vào trong tệp ZIP mà bạn tải lên, cũng như các mô-đun liên kết linh hoạt được soạn thảo bằng rpath trỏ đến thư mục gốc của hàm Lambda. Tìm hiểu thêm ở đây.

Câu hỏi: Tôi có thể thực thi các tệp nhị phân bằng AWS Lambda viết bằng Node.js hay không?

Có. Bạn có thể sử dụng lệnh child_process của Node.js để thực thi một tệp nhị phân mà bạn đã đưa vào trong hàm hoặc một tệp thực thi bất kỳ từ Amazon Linux hiển thị với hàm của bạn. Ngoài ra còn tồn tại một số gói NPM có chứa các tệp nhị phân dòng lệnh, chẳng hạn như node-ffmpeg. Tìm hiểu thêm tại đây.

Câu hỏi: Tôi triển khai mã hàm AWS Lambda viết bằng Node.js bằng cách nào?

Để triển khai một hàm Lambda viết bằng Node.js, bạn chỉ cần đóng gói mã Javascript và các thư viện phụ thuộc dưới dạng tệp ZIP. Bạn có thể tải tệp ZIP này lên từ môi trường cục bộ của mình hoặc chỉ định một vị trí Amazon S3 chứa tệp ZIP. Để biết thêm chi tiết, xem tài liệu.

Hàm AWS Lambda trong Python

Câu hỏi: Tôi có thể sử dụng các gói Python với AWS Lambda không?

Có. Bạn có thể sử dụng pip để cài đặt bất kỳ gói Python nào cần thiết.

Hàm AWS Lambda trong C#

Câu hỏi: Tôi đóng gói và triển khai hàm AWS Lambda trong C# bằng cách nào?

Bạn có thể tạo một hàm C# Lambda thông qua IDE Visual Studio bằng cách chọn “Publish to AWS Lambda” (Phát hành đến AWS Lambda) trong Trình khám phá giải pháp. Nếu không, bạn có thể chạy trực tiếp lệnh “dotnet lambda publish” từ CLI dotnet đã cài đặt [# bản vá công cụ CLI của Lambda], thao tác này tạo một tệp ZIP chứa mã nguồn C# cùng với tất cả các quan hệ phụ thuộc NuGet cũng như các tập hợp DLL đã phát hành của riêng bạn, đồng thời tự động tải tệp này lên AWS Lambda bằng tham số thời gian chạy “dotnetcore1.0”

Hàm AWS Lambda trong PowerShell

Câu hỏi: Tôi triển khai mã hàm AWS Lambda viết bằng PowerShell bằng cách nào?

Gói triển khai PowerShell Lambda là một tập ZIP chứa tập lệnh PowerShell của bạn, các mô-đun PowerShell bắt buộc hỗ trợ tập lệnh PowerShell và các tập hợp cần thiết để lưu trữ PowerShell Core. Sau đó, bạn sẽ sử dụng mô-đun PowerShell AWSLambdaPSCore mà bạn có thể cài đặt từ Thư viện PowerShell để tạo gói triển khai PowerShell Lambda của bạn.

Câu hỏi: Tôi triển khai mã hàm AWS Lambda viết bằng PowerShell bằng cách nào?  Gói triển khai PowerShell Lambda là một tập ZIP chứa tập lệnh PowerShell của bạn, các mô-đun PowerShell bắt buộc hỗ trợ tập lệnh PowerShell và các tập hợp cần thiết để lưu trữ PowerShell Core. Sau đó, bạn sẽ sử dụng mô-đun PowerShell AWSLambdaPSCore mà bạn có thể cài đặt từ Thư viện PowerShell để tạo gói triển khai PowerShell Lambda của bạn.
Câu hỏi: Tôi triển khai mã hàm AWS Lambda viết bằng PowerShell bằng cách nào?  Gói triển khai PowerShell Lambda là một tập ZIP chứa tập lệnh PowerShell của bạn, các mô-đun PowerShell bắt buộc hỗ trợ tập lệnh PowerShell và các tập hợp cần thiết để lưu trữ PowerShell Core. Sau đó, bạn sẽ sử dụng mô-đun PowerShell AWSLambdaPSCore mà bạn có thể cài đặt từ Thư viện PowerShell để tạo gói triển khai PowerShell Lambda của bạn.

Hàm AWS Lambda trong Go

Câu hỏi: Tôi đóng gói và triển khai hàm AWS Lambda trong Go bằng cách nào? 

Tải lên thành phần lạ thực thi Go của bạn dưới dạng tập ZIP thông qua AWS CLI hoặc bảng điều khiển Lambda và lựa chọn thời gian chạy go1.x. Với Lambda, bạn có thể sử dụng các công cụ gốc của Go để xây dựng và đóng gói mã của mình. Để biết thêm chi tiết, đọc tài liệu của chúng tôi

Hàm AWS Lambda trong Ruby

Câu hỏi: Tôi triển khai mã hàm AWS Lambda viết bằng Ruby bằng cách nào? 

Để triển khai một hàm Lambda viết bằng Ruby, hãy đóng gói mã Ruby và các gem dưới dạng tệp ZIP. Bạn có thể tải tệp ZIP này lên từ môi trường cục bộ của mình hoặc chỉ định một vị trí Amazon S3 chứa tệp ZIP.

Các chủ đề khác

Câu hỏi: AWS Lambda hỗ trợ những phiên bản Amazon Linux, Node.js, Python, JDK, .NET Core, SDK và thư viện bổ sung nào?

Bạn có thể xem danh sách phiên bản được hỗ trợ ở đây.

Câu hỏi: Tôi có thể thay đổi phiên bản Amazon Linux hoặc thời gian chạy ngôn ngữ không?

Không. AWS Lambda cung cấp một phiên bản hệ điều hành và thời gian chạy ngôn ngữ có quản lý duy nhất cho tất cả người dùng dịch vụ. Bạn có thể sử dụng thời gian chạy ngôn ngữ của riêng bạn trong Lambda.

Câu hỏi: Tôi có thể ghi lại và kiểm tra các lệnh gọi thực hiện tới API AWS Lambda bằng cách nào?

AWS Lambda được tích hợp với AWS CloudTrail. AWS CloudTrail có thể ghi lại và cung cấp các tệp nhật ký có bộ chứa Amazon S3 mô tả mức sử dụng API của tài khoản của bạn.

Câu hỏi: Làm thế nào để điều phối lệnh gọi giữa nhiều hàm Lambda?

Bạn có thể sử dụng Amazon Step Functions để điều phối nhiều hàm Lambda đang gọi. Bạn có thể gọi ra nhiều hàm Lambda theo cách tuần tự, chuyển đầu ra của hàm này sang hàm khác, hoặc song song. Xem tài liệu của chúng tôi để biết thêm chi tiết.

Câu hỏi: AWS Lambda có hỗ trợ Advanced Vector Extensions 2 (AVX2) không?

Có, AWS Lambda hỗ trợ bộ hướng dẫn Advanced Vector Extensions 2 (AVX2). Để tìm hiểu thêm về cách biên dịch mã ứng dụng của bạn để hướng bộ hướng dẫn này vào việc cải thiện hiệu năng, hãy truy cập tài liệu dành cho nhà phát triển AWS Lambda.

Tìm hiểu thêm về cách định giá AWS Lambda

Truy cập trang giá
Bạn đã sẵn sàng để bắt đầu chưa?
Đăng ký
Bạn có câu hỏi khác ư?
Liên hệ với chúng tôi