Để truyền tham số cho hàm lambda của bạn, bạn cần tạo ánh xạ giữa yêu cầu API Gateway và hàm lambda của bạn. Ánh xạ được thực hiện trong phần Integration Request
-> Mapping templates
của tài nguyên API Gateway đã chọn.
Tạo một bản đồ loại application/json
, sau đó ở bên phải bạn sẽ chỉnh sửa (nhấp vào bút chì) mẫu.
Mẫu ánh xạ thực sự là một mẫu Vận tốc trong đó bạn có thể sử dụng if, vòng lặp và tất nhiên là in các biến trên đó. Mẫu có các biến này được chèn vào nơi bạn có thể truy cập các tham số chuỗi truy vấn, tiêu đề yêu cầu, v.v. Với đoạn mã sau, bạn có thể tạo lại toàn bộ chuỗi truy vấn:
{
"querystring" : "#foreach($key in $input.params().querystring.keySet())#if($foreach.index > 0)&#end$util.urlEncode($key)=$util.urlEncode($input.params().querystring.get($key))#end",
"body" : $input.json('$')
}
Lưu ý: nhấp vào biểu tượng kiểm tra để lưu mẫu. Bạn có thể kiểm tra các thay đổi của mình bằng nút "kiểm tra" trong tài nguyên của mình. Nhưng để kiểm tra các tham số chuỗi truy vấn trong bảng điều khiển AWS, bạn sẽ cần xác định tên tham số trong Method Request
phần tài nguyên của mình.
Lưu ý: kiểm tra Hướng dẫn sử dụng Velocity để biết thêm thông tin về ngôn ngữ tạo khuôn mẫu Vận tốc.
Sau đó, trong mẫu lambda của bạn, bạn có thể làm như sau để có được chuỗi truy vấn được phân tích cú pháp:
var query = require('querystring').parse(event.querystring)
// access parameters with query['foo'] or query.foo