सर्वर रहित: आग और भूलकर आह्वान विधि अपेक्षा के अनुरूप काम नहीं करती है


9

मेरे पास एक सर्वरलेस लैम्ब्डा फ़ंक्शन है, जिसमें मैं एक विधि (आग) लगाना चाहता हूं और इसके बारे में भूल सकता हूं

मैं इसे इस तरह से कर रहा हूं

   // myFunction1
   const params = {
    FunctionName: "myLambdaPath-myFunction2", 
    InvocationType: "Event", 
    Payload: JSON.stringify(body), 
   };

   console.log('invoking lambda function2'); // Able to log this line
   lambda.invoke(params, function(err, data) {
      if (err) {
        console.error(err, err.stack);
      } else {
        console.log(data);
      }
    });


  // my function2 handler
  myFunction2 = (event) => {
   console.log('does not come here') // Not able to log this line
  }

मैंने देखा है कि जब तक और जब तक मैं एक Promise returnमें myFunction1नहीं करता, तब तक यह ट्रिगर नहीं होता है myFunction2, लेकिन लैंबडा सेट नहीं करना चाहिए InvocationType = "Event"मतलब हम चाहते हैं कि यह आग हो और भूल जाए और कॉलबैक प्रतिक्रिया की परवाह न करें?

क्या मुझसे कोई चूक हो रही है?

किसी भी सहायताको बहुत सराहा जाएगा।


क्या आपने क्लाउडवॉच में लॉग की जांच की कि निमंत्रण क्यों विफल हो रहा है?
सुरेंद्र ई

जवाबों:


2

आपका myFunction1एक ऐसा async फ़ंक्शन होना चाहिए, जिससे फ़ंक्शन को वापस myFunction2लाया जा सके lambda.invoke()। कोड को निम्न में बदलें तब उसे काम करना चाहिए:

 const params = {
    FunctionName: "myLambdaPath-myFunction2", 
    InvocationType: "Event", 
    Payload: JSON.stringify(body), 
 };

 console.log('invoking lambda function2'); // Able to log this line
 return await lambda.invoke(params, function(err, data) {
     if (err) {
       console.error(err, err.stack);
     } else {
       console.log(data);
     }
 }).promise();


 // my function2 handler
 myFunction2 = async (event) => {
   console.log('does not come here') // Not able to log this line
 }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.