Asynchronous Invocation কিভাবে কাজ করে?

Lambda এর সাথে Asynchronous এবং Batch Processing - এডাব্লিউএস ল্যাম্বডা (AWS Lambda) - Web Development

253

AWS Lambda ফাংশনের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো Asynchronous Invocation (অসিঙ্ক্রোনাস ইনভোকেশন)। এটি এমন একটি প্রক্রিয়া যেখানে Lambda ফাংশনটি ট্রিগার হলে সেটি সরাসরি (synchronously) ফলাফল প্রদান না করে বরং ব্যাকগ্রাউন্ডে কাজ করে এবং পরে রেসপন্স প্রদান করে। এটি একটি ফাংশনের কাজ সম্পাদিত হওয়ার সাথে সাথে তার ফলাফল পরবর্তী পর্যায়ে প্রাপ্ত করা সম্ভব করে, যা লম্বা সময় নিতে পারে এমন কাজের জন্য উপযোগী।

এখানে আলোচনা করা হবে কীভাবে Asynchronous Invocation কাজ করে এবং এর ব্যবহারিক সুবিধাগুলি কী।


1. Asynchronous Invocation কী?

Asynchronous Invocation বা অসিঙ্ক্রোনাস ইনভোকেশন হল একটি প্রক্রিয়া যেখানে Lambda ফাংশনটি কোনো ইভেন্ট থেকে ট্রিগার হওয়ার পর তা তৎক্ষণাতভাবে কাজ শুরু করে, কিন্তু ফলাফল বা আউটপুটে ফিরে আসার জন্য অপেক্ষা করতে হয় না। বরং Lambda ফাংশনটি ব্যাকগ্রাউন্ডে প্রক্রিয়া চালাতে থাকে এবং এক পর্যায়ে কাজ শেষ হলে এটি একটি সিস্টেম বা সার্ভিসকে রেসপন্স দেয় (যেমন, SQS, SNS, অথবা অন্য কোনো আউটপুট ডেস্টিনেশন)।

এটি সাধারণত তখন ব্যবহৃত হয় যখন কাজটি সময়সাপেক্ষ বা দীর্ঘস্থায়ী হতে পারে এবং একে অপেক্ষা করা প্রয়োজন নেই, যেমন ইমেইল পাঠানো, লগ সংরক্ষণ, বা বড় ডেটা প্রসেসিং।


2. Asynchronous Invocation এর কাজ করার পদ্ধতি

AWS Lambda ফাংশনের Asynchronous Invocation বেশ কিছু নির্দিষ্ট ধাপে কাজ করে:

1. Lambda ফাংশন ট্রিগার হওয়া

প্রথমে, যখন কোনো ইভেন্ট Lambda ফাংশনকে ট্রিগার করে (যেমন, S3 বকেটে একটি ফাইল আপলোড হওয়া, SNS টপিক থেকে একটি মেসেজ আসা, অথবা কাস্টম অ্যাপ্লিকেশন থেকে একটি রিকোয়েস্ট আসা), Lambda ফাংশনটি তার কাজ শুরু করে।

2. Immediately Processed (তৎক্ষণাত প্রক্রিয়া শুরু)

এই প্রক্রিয়ার মধ্যে, Lambda ফাংশনটি দ্রুত এক্সিকিউশন শুরু করে এবং এর ফলাফল প্রাপ্তি বা আউটপুট পরবর্তী ধাপে চলে যায়। এই সময়ে Lambda ফাংশনটির চলমান প্রসেসিংয়ের জন্য অন্য কোনো রিকোয়েস্টের জন্য অপেক্ষা করা হয় না।

3. Event Source - SQS, SNS, EventBridge

Lambda যখন অসিঙ্ক্রোনাসভাবে রান হয়, তখন সঠিক আউটপুট ডেটার জন্য SQS (Simple Queue Service), SNS (Simple Notification Service), বা EventBridge এর মতো সেবাগুলি ব্যবহার করে।

  • SNS: Lambda ফাংশন সম্পন্ন হওয়ার পরে স্ন্যাপ-শট বা বার্তা অন্য কোনো সিস্টেমে পাঠানো যায়।
  • SQS: Lambda ফাংশন বার্তা বা কাজের স্ট্যাটাসকে সিকুয়েন্সিয়ালভাবে সিকুয়েন্সড কিউতে রেখে দিতে পারে।
  • EventBridge: ইভেন্ট ড্রিভেন আর্কিটেকচারে ব্যবহৃত হয়, যেখানে Lambda ফাংশনের ফলাফল একটি ইভেন্ট শিরোনামে ফিরিয়ে দেওয়া হয়।

4. Result Handling (ফলাফল পরিচালনা)

Asynchronous Invocation শেষে, Lambda ফাংশনটি প্রক্রিয়া সম্পন্ন করলে, এটি কোনো আউটপুট বা ফলাফল নির্দিষ্ট ডেস্টিনেশনে পাঠাতে পারে। আপনি ইভেন্টের ডেটা বা ফলাফল একাধিক প্লেসে যেমন SQS কিউ, SNS টপিক, অথবা অন্য কোনো ডেস্টিনেশন ব্যবহার করতে পারেন।

5. Retries and Error Handling (পুনরায় চেষ্টা এবং ত্রুটি পরিচালনা)

যেহেতু Lambda ফাংশনটি অসিঙ্ক্রোনাসভাবে কাজ করছে, তাতে যদি কোনো ত্রুটি ঘটে, তবে Lambda সিস্টেমটি auto retry ফিচার ব্যবহার করে, নির্দিষ্ট সময়ের মধ্যে ফাংশনটি পুনরায় চালু করার চেষ্টা করবে। তবে, নির্দিষ্ট একটি সংখ্যার পরে ত্রুটি ঘটলে, ফাংশনটি Dead Letter Queue (DLQ) বা অন্য কোনো স্থানে পাঠানো হতে পারে, যেখানে এটি পরবর্তীতে ম্যানুয়ালি বিশ্লেষণ করা যায়।


3. Asynchronous Invocation এর সুবিধা

Asynchronous Invocation এর বেশ কিছু সুবিধা রয়েছে, যার মধ্যে কিছু গুরুত্বপূর্ণ সুবিধা হল:

1. No Need for Immediate Response (তৎক্ষণাত রেসপন্স প্রয়োজন নেই)

অসিঙ্ক্রোনাস ইনভোকেশন ব্যবহার করার সবচেয়ে বড় সুবিধা হলো, আপনার অ্যাপ্লিকেশন বা সিস্টেম আর Lambda ফাংশনের ফলাফল বা আউটপুটের জন্য অপেক্ষা করতে হবে না। এটি দীর্ঘ সময়ের প্রসেসিংয়ের জন্য আদর্শ, যেমন ইমেইল পাঠানো বা বৃহত্তর ডেটা প্রসেসিং।

2. Scalability (স্কেলযোগ্যতা)

Lambda ফাংশনটি ইভেন্টগুলির ভিত্তিতে স্কেল হয় এবং একাধিক রিকোয়েস্ট বা প্রসেসিং কেস সমান্তরালভাবে সমাধান করতে সক্ষম। Asynchronous Invocation এর মাধ্যমে Lambda যেকোনো পরিমাণ রিকোয়েস্টের জন্য স্কেলিং সক্ষম হয়, যা সার্ভার-লেস অ্যাপ্লিকেশনগুলোর জন্য অত্যন্ত উপকারী।

3. Error Handling with Retries

যেহেতু Lambda ফাংশনটি অনসিঙ্ক্রোনাসভাবে কাজ করে, তাতে কোনো সমস্যা হলে Lambda সিস্টেম automatic retries সক্ষম করে, যা ত্রুটি বা ব্যর্থতার পর ফাংশনটির পুনরায় চেষ্টা করে।

4. Cost Efficiency (খরচের দক্ষতা)

Asynchronous Invocation মাধ্যমে আপনি শুধু তখনই খরচ করেন যখন Lambda ফাংশনটি আসলেই চালানো হয়। এর ফলে, কোনো ইনভোকেশন না ঘটলে আপনি কোনো খরচ প্রদান করেন না। সুতরাং, এটি একটি কস্ট-ইফিশিয়েন্ট সল্যুশন হতে পারে।


4. Asynchronous Invocation এর প্রয়োগ ক্ষেত্র

AWS Lambda এর Asynchronous Invocation বিভিন্ন ধরনের কাজের জন্য উপযুক্ত। কিছু সাধারণ প্রয়োগ ক্ষেত্র হলো:

  • Email Notifications: যখন ব্যবহারকারীর কোন কর্মকাণ্ডের জন্য ইমেইল পাঠাতে হয়, তখন এটি একটি সময়সাপেক্ষ কাজ হতে পারে। Asynchronous Invocation এর মাধ্যমে আপনি ইমেইল প্রেরণ করতে পারেন এবং অন্যান্য কাজের সাথে সমান্তরালভাবে কাজ করতে পারেন।
  • Data Processing: বড় ডেটাসেট বা লম্বা প্রসেসিংয়ের কাজের জন্য Asynchronous Invocation খুব উপকারী। উদাহরণস্বরূপ, একাধিক ফাইল প্রক্রিয়া করার জন্য S3 থেকে ডেটা নিয়ে প্রসেস করা।
  • Image or Video Processing: বড় ছবির ফাইল বা ভিডিও প্রসেসিংয়ের মতো দীর্ঘস্থায়ী কাজের জন্য এটি আদর্শ, যেখানে Lambda ফাংশন এক্সিকিউট হবে কিন্তু তাৎক্ষণিক রেসপন্সের প্রয়োজন হবে না।
  • Log Aggregation: অনেক জায়গা থেকে লগ সংগ্রহ করে একটি সেন্ট্রাল সিস্টেমে পাঠানো যেতে পারে, যেখানে Lambda ফাংশন একটি ব্যাচে এই কাজটি করবে।
  • Queue-Based Workloads: SQS বা SNS কিউ ব্যবহার করে Asynchronous Invocation এ সিস্টেমগুলো সিকুয়েন্সিয়ালি বা ব্যাচে কাজ করতে পারে।

সারাংশ

AWS Lambda এর Asynchronous Invocation ব্যবহার করে আপনি লম্বা সময় নিতে পারে এমন কাজগুলো ব্যাকগ্রাউন্ডে চালাতে পারেন এবং তাৎক্ষণিক ফলাফল ছাড়াই আপনার অ্যাপ্লিকেশন বা সিস্টেমের অন্যান্য অংশগুলো চলতে রাখতে পারেন। এটি বিশেষভাবে উপকারী যখন আপনি ইমেইল, ডেটা প্রসেসিং, বা ভিডিও/image প্রসেসিং মতো সময়সাপেক্ষ কাজ পরিচালনা করতে চান, এবং এর মাধ্যমে Lambda ফাংশনটি Scalability, Reliability, এবং Cost Efficiency এর মাধ্যমে কার্যকরভাবে কাজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...