मैं एपीआई गेटवे से एडब्ल्यूएस लैम्ब्डा समारोह में कुछ पैरामीटर भेजने की कोशिश कर रहा हूँ, समस्या यह है कि गेटवे लैम्ब्डा को सभी खाली पैरामीटर भेजता है, इसलिए यह विफल रहता है। मैंने उन कॉन्फ़िगरेशन की समीक्षा की है जिन्हें मैं जानता हूं, जो बहुत अधिक नहीं हैं, लेकिन मैं इसे हल करने में सक्षम नहीं हूं।

यह मेरा अनुरोध निकाय है:

{
      "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')"
}

जब मैं सीधे उनका परीक्षण करता हूं तो लैम्ब्डा फ़ंक्शन सही ढंग से काम करता है, इसलिए मुझे लगता है कि समस्या एपीआई गेटवे में है

1
kmilo93sd 1 अगस्त 2018, 19:43
क्या आप इस बारे में कुछ विवरण प्रदान कर सकते हैं कि आपने एपीआई गेटवे को कैसे कॉन्फ़िगर किया है? उस जानकारी के बिना डीबग करना मुश्किल है।
 – 
moebius
2 अगस्त 2018, 05:23

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);
};
-1
asr9 1 अगस्त 2018, 21:23
{
    "functionName" = $input.json('$.functionName');
    "name":"$input.json('$.name')"
    //try for other body parameters as well.
}

कृपया इस लिंक

-1
AymDev 2 अगस्त 2018, 15:28