Mã của bạn phải tuân theo Mô hình lập trình hàm lambda và có vẻ như bạn sẽ cần sửa đổi mã của mình để vừa. Mã Python của bạn phải xác định một trong các hàm của nó là trình xử lý. Này được thực hiện như sau:
def handler_name(event, context):
...
return some_value
Từ hướng dẫn chính thức:
sự kiện-AWS Lambda sử dụng tham số này để vượt qua trong dữ liệu sự kiện để xử lý . Tham số này thường là kiểu dict của Python. Nó có thể cũng là danh sách, str, int, float hoặc loại NoneType.
ngữ cảnh — AWS Lambda sử dụng thông số này để cung cấp thông tin thời gian chạy cho trình xử lý của bạn. Tham số này thuộc loại LambdaContext. Tùy chọn, trình xử lý có thể trả về một giá trị. Điều gì xảy ra các trở giá trị phụ thuộc vào loại gọi bạn sử dụng khi gọi chức năng Lambda :
Nếu bạn sử dụng các loại RequestResponse gọi (đồng bộ thực hiện), AWS Lambda trả về kết quả của hàm Python gọi để máy khách gọi hàm Lambda (trong phản hồi HTTP tới yêu cầu gọi, được tuần tự hóa thành JSON). Ví dụ, giao diện điều khiển AWS Lambda sử dụng loại yêu cầu RequestResponse, vì vậy khi bạn kiểm tra gọi hàm bằng bàn điều khiển, bảng điều khiển sẽ hiển thị giá trị trả về .
Nếu trình xử lý không trả về gì, AWS Lambda trả về giá trị rỗng.
Nếu bạn sử dụng loại gọi sự kiện (thực thi không đồng bộ), giá trị sẽ bị hủy.
Với những thay đổi được thực bước đầu tiên sẽ được đóng gói mã, cùng với bất kỳ phụ thuộc, vào một gói phần mềm triển khai. Để thực hiện việc này, bạn phải tạo một tệp số
.zip
theo cách sau.
Trước tiên, tạo thư mục cho gói của bạn. Trong trường hợp này bạn có thể gọi nó là MailgunScript
hoặc một cái gì đó tương tự. Lưu tất cả các tệp nguồn Python của bạn bên trong thư mục này ở cấp cơ sở.
Bạn có thể sử dụng lệnh pip cài đặt bất cứ thư viện cần thiết, giống như các yêu cầu và các thư viện urllib2, vào một thư mục lựa chọn của bạn:
pip install requests -t /absolutePathTo/MailgunScript
pip install urllib2 -t /absolutePathTo/MailgunScript
Cuối cùng, bạn phải tạo một kho lưu trữ .zip
từ nội dung của thư mục này, không phải từ chính thư mục đó.
Bạn đã sẵn sàng chuyển gói triển khai của mình thành một hàm Lambda. Đăng nhập vào bảng điều khiển quản lý AWS của bạn và chọn Create a Lambda Function
. Nếu được nhắc chọn một kế hoạch chi tiết, bạn có thể chọn mặc định hello-world
kế hoạch chi tiết và tiến hành tải lên gói triển khai của bạn và điền vào phần còn lại của các trường theo yêu cầu.
Sau đó, bạn có thể kiểm tra chức năng này chỉ bằng cách quay lại bảng điều khiển quản lý AWS chính, chọn chức năng và bấm test
. Ngoài ra, bạn có thể tự gọi hàm Lambda mới từ giao diện dòng lệnh với một lệnh như sau:
aws lambda invoke \
--region yourRegion \
--function-name yourFunctionName \
--payload '{"url"}' \
--invocation-type RequestResponse \
/tmp/response
này sẽ thực hiện chức năng và đầu ra của bạn phản ứng với /tmp/response
để kiểm tra.
Chức năng thư của tôi có url là đầu vào. Làm thế nào để chuyển nó vào sự kiện? – shantanuo
liên quan đến mã zip, tôi gặp sự cố với Linux zip fie và phải sao chép mã vào cửa sổ và sử dụng winzip. Nếu không, bạn sẽ tiếp tục nhận được lỗi là "không tìm thấy mô-đun" – BMW