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ã của bạn 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ủ. Tìm hiểu thêm về điện toán serverless bằng cách truy cập vào đây.

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 hướng dẫn để 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 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 đơn giản, trong đó bạn duy trì 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 bộ chứa 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 Runtime API cho phép bạn sử dụng bất kỳ ngôn ngữ lập trình nào khác để lập trình các chức năng của mình. Vui lòng đọc tài liệu về cách 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ì thường quy 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ác 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 đồ tạo tác 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 hoặc dịch vụ lưu trữ có trên Internet. Các hàm Lambda có thể sử dụng các thư viện, kể cả các thư viện gốc.

Câu hỏi: AWS Lambda sẽ 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?

Mỗi hàm Lambda nhận được 500MB dung lượng đĩa trống không bền vững trong chính thư mục /tmp của hàm.

Câu hỏi: Tại sao các hàm 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ể về 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ỉ ổ cắm TCP/IP và UDP/IP được hỗ trợ, đồng thời các lệnh gọi hệ thống ptrace (gỡ lỗi) 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: Tôi tạo AWS Lambda bằng bảng điều khiển Lambda như thế nào?

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 mà 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: Tôi tạo hàm AWS Lambda bằng CLI của Lambda như thế nào?

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, xem tài liệu hướng dẫn.

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...) 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ớ theo bước tăng 64MB từ 128MB đến 3GB.

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 giá của AWS Lambda để biết chi tiết.

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 hướng dẫn về quản lý phiên bản hàm Lambda.

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 AWS SDK) để 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.

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. 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 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 hướng dẫn để 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 trong đó sự kiện chuyển đến theo từng lô, ví dụ như các Luồng Amazon SQS, Amazon Kinesis và Amazon DynamoDB, tham số sự kiện có thể chứa nhiều sự kiện trong một lời 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, 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ề các Luồng Amazon DynamoDB, 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 ra các hàm Lambda bằng Amazon SNS, tham khảo Hướng dẫn dành cho nhà phát triển Amazon SNS. Để biết thông tin về các sự kiện của Amazon Cognito, tham khảo Amazon Cognito. Để biết 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, 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?

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 DynamoDB Stream liên kết với bảng. Bạn có thể liên kết một DynamoDB Stream 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: 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?

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à Amazon DynamoDB Streams 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 đoạn khác nhau và quá trình xử lý từng phân đoạn diễn ra song song.

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 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 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. 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: Tôi tạo một lớp back-end di động bằng AWS Lambda bằng cách nào?

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 lẫn 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, tham khảo trang AWS Mobile SDK. Để tìm hiểu thêm về Amazon API Gateway, 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: Hàm AWS Lambda của tôi có thể cá nhân hóa hành vi dựa trên thông tin định danh của người dùng cuối của một ứng dụng như thế nào?

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 tự phục vụ, công cụ, tài liệu hướng dẫn và các mã mẫu giúp bạn dễ dàng tạo các khả 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 hướng dẫn 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 serverless”). Các tài nguyên này giúp khách hàng AWS sử dụng CloudFormation dễ dàng hơn cho việc cấu hình và triển khai các ứng dụng serverless thông qua các API CloudFormation hiện tại.

Câu hỏi: Tôi có thể khám phá các ứng dụng serverless hiện có do cộng đồng AWS phát triển bằng cách nào?

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 serverless?

Bạn có thể tự động hóa qua trình phát hành của ứng dụng serverless 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 serverless. 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 serverless, tham khảo tài liệu hướng dẫn 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, 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 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 serverless mà bạn vừa tải xuống. Để biết thêm chi tiết, tham khảo tài liệu hướng dẫn.

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 thêm các quyền X-Ray cho vai trò thực thi của hàm Lambda và thay đổi “chế độ dò vết” của hàm thành “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. 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: 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 và tích hợp AWS SAM vào các công cụ xây dựng, phát triển, giám sát và quản lý bằng một giấy phép thân thiện về mặt thương mại. Bạn có thể truy cập kho AWS SAM trên GitHub tại đây.

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 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 địa điểm 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 hướng dẫn.

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 chỉ hỗ trợ Node.js cho yêu cầu gọi toàn cầu bởi các sự kiện CloudFront. Tìm hiểu thêm trong tài liệu hướng dẫn.

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 trong đó 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 không 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 (ví dụ: Amazon EC2, Cân bằng tải ứng dụng 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 trên mỗi 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 mà bạn có thể sử dụng để dự trữ một phần nhỏ giới hạn chạy đồng thời của tài khoản cho các hàm quan trọng hoặc giới hạn 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 điều tiết, bạn có thể truy cập Trung tâm hỗ trợ, nhấp vào “Open a new case” (Mở một trường hợp mới) và nộp yêu cầu tăng giới hạn dịch vụ.

Câu 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 điều tiết, các hàm AWS Lambda đang được gọi ra đồng thời sẽ trả về lỗi điều tiết (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ờ.

Câu hỏi: Giới hạn mặc định có áp dụng ở cấp độ mỗi hàm hay không?

Không, giới hạn mặc định chỉ áp dụng ở cấp độ tài khoản.

Câu hỏi: Điều gì sẽ xảy ra nếu hàm Lambda của tôi 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 đượ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 bộ chứa 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. 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ò đượ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. 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: 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ý 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 giới hạn hơn sẽ áp dụng.

Câu hỏi: Tôi có thể truy cập các tài nguyên phía sau Amazon VPC bằng hàm AWS Lambda của mình hay không?

Có. Bạn có thể truy cập các tài nguyên phía sau Amazon VPC.

Câu hỏi: Làm thế nào để kích hoạt và vô hiệu hóa hỗ trợ VPC cho hàm Lambda của tôi?

Để kích hoạt hỗ trợ VPC, bạn cần chỉ định một hoặc nhiều mạng con trong một VPC đơn lẻ và một nhóm bảo mật nằm trong cấu hình của hàm. Để vô hiệu hóa hỗ trợ VPC, bạn cần cập nhật cấu hình của hàm và chỉ định một danh sách trống cho mạng con và nhóm bảo mật. Bạn có thể thay đổi cài đặt này bằng các API, CLI của AWS hoặc Bảng điều khiển quản lý AWS Lambda.

Câu hỏi: Một hàm Lambda đơn lẻ có thể có quyền truy cập nhiều VPC hay không?

Không. Các hàm Lambda chỉ cung cấp quyền truy cập vào một VPC duy nhất. Nếu có nhiều mạng con được chỉ định, tất cả các mạng con đó phải trong cùng một VPC. Bạn có thể kết nối đến các VPC khác bằng cách kết nối ngang hàng các VPC của bạn.

Câu hỏi: Các hàm Lambda trong một VPC cũng có thể truy cập internet và các điểm cuối Dịch vụ AWS hay không?

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. Nếu muốn truy cập đến các điểm cuối bên ngoài, bạn sẽ cần phải tạo một NAT trong VPC của bạn để chuyển tiếp lưu lượng này và cấu hình nhóm bảo mật để cho phép lưu lượng đi ra này.

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, xem tài liệu hướng dẫn.

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 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 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 ở đâ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ướng dẫn.

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. Hoặc, 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ụ. Ban 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 hướng dẫn để biết thêm chi tiết.

Tìm hiểu thêm về giá của AWS Lambda

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