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


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.