সার্ভারলেস: ফায়ার এবং বিস্মরণ আহরণ পদ্ধতিটি প্রত্যাশার মতো কাজ করে না


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একটি অ্যাসিঙ্ক ফাংশন হওয়া উচিত যার কারণেই ফাংশনটি আগে 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
 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.