- Điện toán›
- AWS Lambda›
- Câu hỏi thường gặp
Câu hỏi thường gặp về AWS Lambda
Chủ đề trang
Thông tin chungThông tin chung
Câu hỏi: AWS Lambda là gì?
Câu hỏi: Điện toán phi máy chủ là gì?
Điện toán phi máy chủ đ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 xem tài liệu của chúng tôi để 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?
Câu hỏi: AWS Lambda hỗ trợ những ngôn ngữ nào?
Câu hỏi: Tôi có được phép truy cập cơ sở hạ tầng chạy AWS Lambda không?
Câu hỏi: AWS Lambda cô lập mã của tôi bằng cách nào?
Câu hỏi: AWS Lambda bảo mật mã của tôi bằng cách nào?
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.
Các hàm AWS Lambda
Câu hỏi: Hàm AWS Lambda là gì?
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 cập vào tài liệu 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 xem mục Định 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?
Câu hỏi: Bộ nhớ lưu trữ tạm thời AWS Lambda có được mã hóa không?
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?
Câu hỏi: Bộ nhớ lưu trữ tạm thời AWS Lambda có được mã hóa không?
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?
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âu hỏi: Những hạn chế nào áp dụng cho mã hàm AWS Lambda?
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). Hãy truy cập vào mục 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 xem tài liệu.
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 Dịch vụ quản lý khóa của AWS và lưu các giá trị thu được dưới dạng bản mã trong biến môi trường. Bạn sẽ cần sử dụng logic trong mã hàm 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ể điều chỉnh và bảo mật các tài nguyên được liên kết với hàm Lambda của mình bằng API hoặc bảng điều khiển Lambda. Để tìm hiểu thêm, hãy xem tài liệu.
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.
Hãy truy cập vào mục 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. Hãy truy cập vào mục 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 điều chỉnh quy mô cho hàm AWS Lambda bằng cách nào?
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?
Câu hỏi: Hàm AWS Lambda có thể thực thi trong bao lâu?
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 Gói tiết kiệm cho điện toán không?
Câu hỏi: AWS Lambda có hỗ trợ lập 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ề lập 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?
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â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ì?
Câu hỏi: Có thể sử dụng nguồn sự kiện nào với AWS Lambda?
Vui lòng xem tài liệu của chúng tôi để biết danh sách đầy đủ các nguồn sự kiện.
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 truy cập và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ề Luồng Amazon DynamoDB, hãy truy cập vào mục 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 truy cập và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 truy cập và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 xem 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?
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?
Câu hỏi: Tôi dùng hàm AWS Lambda để xử lý các bản ghi trong luồng Amazon Kinesis bằng cách nào?
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âu hỏi: Tôi nên chọn AWS Lambda hay Amazon Kinesis Data Analytics 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. Phân tích dữ liệu Amazon Kinesis 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 | Có | Có |
Khung thời gian linh hoạt | Không | Có |
Khung thời gian trượt | Không | Có |
Khung thời gian phiên | Không | Có |
Bổ sung | Không | Có |
Bảng đầu vào chung và bảng tham chiếu | Không | Có |
Luồng đầu vào phân tách | Không | Có |
Xử lý chính xác một lần | Không | Có |
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?
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?
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ách thiết lập 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ỳ tập dữ liệu nào liên kết với nhóm danh tính 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 truy cập vào mục 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?
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ề SDK di động của AWS, hãy truy cập vào trang SDK di động của AWS. Để tìm hiểu thêm về Cổng API Amazon, hãy truy cập vào trang Cổng API Amazon.
Câu hỏi: Làm thế nào để gọi một hàm AWS Lambda qua HTTPS?
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?
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?
Câu hỏi: Làm thế nào để tạo một kỹ năng Alexa bằng AWS Lambda?
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?
Sử dụng AWS Lambda để xây dựng ứng dụng
Câu hỏi: Ứng dụng phi máy chủ là gì?
Câu hỏi: Tôi triển khai và quản lý ứng dụng serverless bằng cách nào?
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 phi máy chủ 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 Kho ứng dụng phi máy chủ AWS. 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 truy cập và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 truy cập và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 serverless?
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 truy cập vào mục 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 phi máy chủ kết nối với cơ sở dữ liệu quan hệ không?
Có. Bạn có thể sử dụng Proxy cho Amazon RDS, 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 phi máy chủ 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 phi máy chủ sử dụng nhóm kết nối được quản lý toàn phần từ Proxy RDS sẽ được tính phí theo Giá Proxy RDS.
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ì?
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?
Câu hỏi: Những loại hình ảnh bộ chứa nào được hỗ trợ?
Câu hỏi: Tôi có thể sử dụng những hình ảnh cơ sở nào?
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?
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?
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?
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:
- 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.
- 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.
- 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?
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 truy cập vào mục 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 truy cập vào mục 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ộ?
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?
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:
- 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.
- 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.
- 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.
- Đâ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 SnapStart có thể cải thiện hiệu năng khởi động từ vài giây xuống chưa tới một giây đối với các ứng dụng có yêu cầu cao về độ trễ. SnapStart hoạt động bằng cách tạo ảnh chụp nhanh cho trạng thái bộ nhớ (và ổ đĩa) đã khởi tạo cho hàm của bạn và lưu ảnh chụp nhanh đó vào bộ nhớ đệm để giúp truy cập với độ trễ thấp. Khi hàm của bạn được gọi sau đó, Lambda sẽ tiếp tục vận hành môi trường thực thi từ ảnh chụp nhanh đã khởi tạo trước này thay vì khởi tạo chúng lại từ đầu, nhờ đó cải thiện độ trễ khi khởi động. Để có khả năng phục hồi, Lambda duy trì các bản sao của ảnh chụp nhanh trong bộ nhớ đệm và tự động áp dụng các bản cập nhật phần mềm, chẳng hạn như nâng cấp thời gian hoạt động và các bản vá bảo mật cho chúng.
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 đơn giản ở cấp độ hàm, có thể được cấu hình cho các hàm mới và hiện có bằng cách sử dụng API Lambda, Bảng điều khiển quản lý AWS, Giao diện dòng lệnh (CLI) AWS, SDK AWS, Bộ phát triển đám mây (CDK) AWS, AWS CloudFormation và Mô hình ứng dụng phi máy chủ (SAM) AWS. Khi bạn cấu hình Lambda SnapStart, mọi phiên bản hàm được xuất bản sau đó đều được hưởng lợi í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, hãy 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 năng, giúp các hàm của bạn đạt được thời gian khởi động nhanh hơn bằng cách giảm độ trễ thay đổi phát sinh trong quá trình thực thi mã khởi tạo một lần. Mặc dù làm giảm độ trễ khởi động, Lambda SnapStart 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ợ nhiều thời gian hoạt động, bao gồm Java 11 (và mới hơn), Python 3.12 (và mới hơn) và .NET 8 (và mới hơn). Các phiên bản thời gian hoạt động trong tương lai sẽ được hỗ trợ sau khi đượ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?
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?
Có. Bạn có thể cấu hình Lambda SnapStart cho các hàm chạy trên cả kiến trúc x86 và Arm.
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?
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) lơn hơn trên 512 MB không?
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ệu và blog để 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?
Có, bạn sẽ bị tính phí cho việc lưu trữ ảnh chụp nhanh trong khoảng thời gian mà phiên bản hàm của bạn hoạt động, trong tối thiểu 3 giờ và mỗi mili giây sau đó. Mức giá phụ thuộc vào dung lượng bộ nhớ bạn phân bổ cho hàm của mình. Bạn cũng bị tính phí mỗi khi Lambda tiếp tục vận hành môi trường thực thi bằng cách khôi phục ảnh chụp nhanh của bạn, với giá tùy thuộc vào lượng bộ nhớ bạn phân bổ cho hàm của mình. Để tìm hiểu thêm về cách định giá SnapStart, vui lòng truy cập trang Định giá AWS Lambda.
Cách định giá SnapStart không áp dụng cho các thời gian hoạt động được quản lý bởi Java được hỗ trợ, vốn chỉ có thể lưu trữ ảnh chụp nhanh trong tối đa 14 ngày.
Câu hỏi: Phí thời lượng của SnapStart được tính như thế nào?
Tương tự như tất cả các hàm Lambda, phí thời lượng cũng được áp dụng cho các hàm SnapStart. Đối với các hàm sử dụng SnapStart, thời lượng bao gồm thời gian tải cho thời gian hoạt động, bất kỳ mã nào chạy trong hook thời gian hoạt động và mã khởi tạo được thực thi trong quá trình tạo bản sao ảnh chụp nhanh để đảm bảo khả năng phục hồi.
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 dành cho Python và .NET, ảnh chụp nhanh hàm của bạn vẫn sẽ hoạt động miễn là hàm của bạn hoạt động. Đối với các hàm Java, ảnh chụp nhanh liên kết với một 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?
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ì?
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?
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 tôi nên sử dụng Tính đồng thời được cung cấp?
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?
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?
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âu hỏi: Làm thế nào để cấu hình các hàm để chạy trên bộ xử lý Graviton2?
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?
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?
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.
Câu hỏi: AWS Lambda có hỗ trợ các hình ảnh bộ chứa đa kiến trúc không?
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â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 hoạt động 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â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 đó, 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í.
Amazon EFS cho AWS Lambda
Câu hỏi: Amazon EFS cho AWS Lambda là gì?
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 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âu hỏi: Ai nên sử dụng Amazon EFS cho Lambda?
Câu hỏi: Dữ liệu của tôi có được mã hóa khi chuyển tiếp không?
Câu hỏi: Dữ liệu của tôi có được mã hóa khi lưu trữ không?
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 xem 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?
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?
URL hàm Lambda
Câu hỏi: Các hàm AWS Lambda có hỗ trợ điểm cuối HTTP(S) không?
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ề việc 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?
Câu hỏi: Làm thế nào để gọi hàm của tôi bằng URL hàm Lambda?
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âu hỏi: URL hàm Lambda có thể được dùng để gọi một hàm trong VPC không?
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 xem Đị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. Hãy 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. Hãy tìm hiểu thêm trong tài liệu của chúng tôi.
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@Edge và Amazon CloudFront cho phép bạn thực thi logic trên nhiều khu vực AWS dựa theo vị trí của 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?
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â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 (hãy 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 chạy đồng thời cho các hàm quan trọng của tài khoản hoặc 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 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 điều tiết 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 ra đồng thời 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 điều tiết. 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ề Tính đồng thời đặt trước).
Câu 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?
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?
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.
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. Truy cập 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 được bộ chứa 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 về 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ò được 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?
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ã?
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â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 xem mục Định giá.
Khả năng giám sát nâng cao
Những biện pháp kiểm soát tạo bản ghi 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.
Hỏi: Tôi có thể sử dụng các biện pháp kiểm soát nâng cao về tạo bản ghi để 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 nâng cao về tạo bản ghi?
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 tạo bản ghi 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 bản ghi của riêng mình để tạo các bản ghi JSON có cấu trúc 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ó JSON cấu trúc.
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 giá CloudWatch để biết chi tiết về giá bản ghi.
Câu hỏi: Tín hiệu về ứng dụng CloudWatch là gì và hoạt động như thế nào với Lambda?
Tín hiệu ứng dụng CloudWatch là giải pháp giám sát hiệu năng ứng dụng (APM) cho phép các nhà phát triển và người vận hành dễ dàng theo dõi tình trạng và hiệu năng của các ứng dụng phi máy chủ được xây dựng bằng Lambda. Tín hiệu về ứng dụng cung cấp các bảng điều khiển được chuẩn hóa, dựng sẵn cho các số liệu ứng dụng quan trọng, dấu vết tương quan và tương tác giữa các hàm Lambda và các phần phụ thuộc – tất cả đều không yêu cầu nhà phát triển phải đo lường thủ công hay thay đổi mã.
Câu hỏi: Làm cách nào để sử dụng Tín hiệu về ứng dụng với Lambda?
Bạn có thể bật Tín hiệu về ứng dụng cho hàm của mình chỉ bằng một cú nhấp chuột trong phần “Công cụ giám sát và vận hành” ở tab Cấu hình trong bảng điều khiển Lambda. Sau khi bật Tín hiệu ứng dụng, bạn có thể xem bảng điều khiển được dựng sẵn, bản đồ dịch vụ, v.v., đồng thời phân tích hiệu năng và tình trạng của các ứng dụng phi máy chủ trong bảng điều khiển CloudWatch. Để tìm hiểu thêm, hãy truy cập hướng dẫn dành cho nhà phát triển Lambda và hướng dẫn dành cho nhà phát triển Tín hiệu về ứng dụng. Truy cập trang giá CloudWatch để tìm hiểu thêm về cách tính phí khi sử dụng Tín hiệu về ứng dụng với các hàm Lambda.
Câu hỏi: CloudWatch Live Tail là gì và hoạt động như thế nào với Lambda?
Live Tail Bản ghi Amazon CloudWatch là một chức năng phân tích và phân luồng bản ghi giàu tính tương tác, mang đến khả năng hiển thị bản ghi theo thời gian thực, giúp dễ dàng phát triển và khắc phục sự cố hàm Lambda hơn. Điều này cho phép nhà phát triển nhanh chóng kiểm tra cũng như xác thực điểm thay đổi cấu hình hoặc mã theo thời gian thực, đẩy nhanh chu kỳ soạn thảo – kiểm thử – triển khai (còn được gọi là “vòng lặp phát triển bên trong”) khi phát triển ứng dụng bằng Lambda. Trải nghiệm Live Tail cũng giúp người vận hành và đội ngũ DevOps phát hiện cũng như gỡ lỗi và sự cố nghiêm trọng về mã của hàm Lambda hiệu quả hơn, giảm thời gian trung bình để phục hồi (MTTR) khi khắc phục lỗi về hàm Lambda.
Câu hỏi: Làm cách nào để sử dụng Live Tail với Lambda?
Để sử dụng Live Tail cho hàm Lambda, bạn hãy truy cập bảng điều khiển Lambda và nhấp vào nút “Mở CloudWatch Live Tail” trong trình soạn mã. Để biết thêm thông tin, hãy truy cập hướng dẫn dành cho nhà phát triển Lambda. Truy cập trang giá CloudWatch để tìm hiểu thêm về cách tính phí khi sử dụng Live Tail với các hàm Lambda.
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ệu củ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ì?
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 tại đâ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 tại đâ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 tại đâ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, hãy xem tài liệu của chúng tôi.
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?
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?
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.
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?
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 hoạt động 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 được thực hiện với API AWS Lambda bằng cách nào?
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. Hãy xem tài liệu của chúng tôi để biết thêm chi tiết.