मैं एपीआई गेटवे से एडब्ल्यूएस लैम्ब्डा समारोह में कुछ पैरामीटर भेजने की कोशिश कर रहा हूँ, समस्या यह है कि गेटवे लैम्ब्डा को सभी खाली पैरामीटर भेजता है, इसलिए यह विफल रहता है। मैंने उन कॉन्फ़िगरेशन की समीक्षा की है जिन्हें मैं जानता हूं, जो बहुत अधिक नहीं हैं, लेकिन मैं इसे हल करने में सक्षम नहीं हूं।
यह मेरा अनुरोध निकाय है:
{
"functionName": "register",
"name": "camilo",
"nick": "kmilo",
"email": "uncorreo@email.com",
"phone": "555555",
"birthdate": "29-09",
"password": "000000"
}
और मानचित्रण टेम्पलेट:
{
"functionName":"$input.params('functionName')",
"name":"$input.params('name')",
"nick": "$input.params('nick')",
"email": "$input.params('email')",
"phone": "$input.params('phone')",
"birthdate": "$input.params('birthdate')",
"password": "$input.params('password')"
}
जब मैं सीधे उनका परीक्षण करता हूं तो लैम्ब्डा फ़ंक्शन सही ढंग से काम करता है, इसलिए मुझे लगता है कि समस्या एपीआई गेटवे में है
2 जवाब
मैंने input params
का उपयोग नहीं किया है, लेकिन इसे करने का दूसरा तरीका है Lambda proxy
को API गेटवे पर सक्षम करना। एपीआई गेटवे तब लैम्ब्डा फ़ंक्शन के लिए सब कुछ प्रॉक्सी करता है और आप event
पैरामीटर लैम्ब्डा प्राप्त से सब कुछ निकाल सकते हैं। उसी के लिए नमूना कोड जहां अनुरोध निकाय {"name1":"val1"}
था
exports.handler = (event, context, callback) => {
// TODO implement
console.log(JSON.stringify(event));
let body = JSON.parse(event.body);
let response = {
statusCode: 200,
body : 'Access granted: ' + body.name1
};
callback(null, response);
};
{
"functionName" = $input.json('$.functionName');
"name":"$input.json('$.name')"
//try for other body parameters as well.
}
कृपया इस लिंक
संबंधित सवाल
नए सवाल
amazon-web-services
Amazon Web Services (AWS) एक सार्वजनिक-क्लाउड है: IaaS (एक सेवा के रूप में अवसंरचना) और अमेज़न द्वारा उपलब्ध कराए गए SaaS (एक सेवा के रूप में सॉफ़्टवेयर)। प्रोग्रामिंग और आर्किटेक्चर के बारे में प्रश्न विषय पर हैं। Https://serverfault.com पर सामान्य सर्वर सहायता प्राप्त की जा सकती है। AWS टैग का उपयोग शायद ही कभी किया जाता है और आमतौर पर अन्य टैग के साथ प्रश्न के विषय को अधिक स्पष्ट रूप से परिभाषित करने के लिए उपयोग किया जाएगा।