2015-12-20 16 views
14

Nói rằng tôi muốn vượt qua VAL1 và VAL2 trong chuỗi URL khi thực hiện một yêu cầu GET đến một endpoint Lambda:Làm cách nào để chuyển các đối số cho các hàm AWA Lambda bằng các yêu cầu GET?

https://xyz.execute-api.amazonaws.com/prod/test?val1=5&val2=10 

Và tôi có một chức năng đơn giản mà tóm tắt hai đầu vào, VAL1 và VAL2:

def lambda_handler(event, context): 
    # How do I get at val1 and val2?? 
    return {'result': val1 + val2} 

Tôi đã thêm val1 và val2 vào tham số chuỗi truy vấn URL trên Yêu cầu phương thức trên Cổng API AWS. Nhưng làm thế nào để tôi truy cập chúng bên trong chức năng?

+0

Bạn đã cố gắng in cả 'sự kiện' và' ngữ cảnh'? Bạn có thể xem [mẫu trong tài liệu] (http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html) – albert

+0

Nếu bạn chuyển dữ liệu của mình chính xác, bạn sẽ có thể truy cập đối tượng 'event' với một cái gì đó như' event.val1' (ít nhất đó là cách bạn truy cập các thuộc tính của đối tượng trong JS) – JohnAllen

Trả lời

16

Sau khi xác định các tham số chuỗi truy vấn trong Phương pháp Yêu cầu phần của API Gateway, sau đó bạn cần phải xác định một mẫu Mapping trong Phương pháp Thực hiện phần.

Trong Phương pháp Thực hiện phần, chọn Mapping Templates và sau đó nhấp vào Thêm Mapping Template. Nhập application/json cho Content Loại và sau đó tạo ra một mẫu vẽ bản đồ mà trông giống như sau:

{ 
    "va1": "$input.params('val1')", 
    "val2": "$input.params('val2')" 
} 

này sẽ cho API Gateway để có những thông số đầu vào (hoặc thông qua trên con đường, hoặc trong tiêu đề, hoặc trong tham số truy vấn) được gọi là val1val2 và gửi chúng đến hàm Lambda trong dữ liệu sự kiện dưới dạng val1val2.

+2

Cảm ơn. Tôi muốn thêm rằng các Mapping Templates nằm trong Integration Request trên trang Method Execution. Liên kết này hữu ích: https://forums.aws.amazon.com/thread.jspa?threadID=192601. Vẫn còn một vài vấn đề, nhưng ít nhất tôi biết nơi để tìm. – capitalistcuttle

+1

Có lẽ tôi sẽ tìm thấy một số lý do cho tất cả các lớp này, nhưng phải nói rằng ở cái nhìn đầu tiên đây là MUCH khó khăn hơn tôi tưởng tượng. Python là như vậy introspectable rằng AWS Lambda chỉ có thể tạo lập bản đồ tự động bằng cách kiểm tra chữ ký chức năng. – capitalistcuttle

+2

Liên kết này đã xóa một số chi tiết về cách bao gồm các loại thông số khác nhau khi chỉnh sửa Mẫu bản đồ: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html # tham biến biến-đầu vào – python1981

Các vấn đề liên quan