সরাসরি প্রধান সামগ্রীতে চলে যান

AWS Lambda কী?

AWS Lambda কী?

AWS Lambda হল একটি সার্ভারলেস কম্পিউটিং সার্ভিস, যা AWS ক্লাউডে কোড রান করার জন্য ব্যবহৃত হয়। Lambda ব্যবহারকারীদের কোনো সার্ভার বা ইনফ্রাস্ট্রাকচার ম্যানেজমেন্ট ছাড়াই কোড চালাতে সাহায্য করে। এটি মূলত ইভেন্ট-ড্রিভেন, যেখানে বিভিন্ন AWS সেবা (যেমন S3, DynamoDB, SNS) বা কাস্টম ইভেন্ট দ্বারা Lambda ফাংশন ট্রিগার হতে পারে। Lambda কোড রান করার পর তা একাধিক আউটপুট জেনারেট করতে পারে, অথবা অন্যান্য সিস্টেমে ফলাফল পাঠাতে পারে।

Lambda একটি serverless প্ল্যাটফর্ম, যার মানে হল আপনি কোনও সার্ভার বা হোস্টিং ম্যানেজ করবেন না। আপনি শুধুমাত্র আপনার কোড লেখবেন এবং Lambda সার্ভিস তার ইনফ্রাস্ট্রাকচার পরিচালনা করবে।

AWS Lambda এর প্রধান সুবিধা:

  • সার্ভার পরিচালনা প্রয়োজন নেই: আপনি কেবল কোড লেখবেন, সার্ভার বা ইনফ্রাস্ট্রাকচার সম্পর্কিত কোনও চিন্তা করার দরকার নেই।
  • স্কেলিং: Lambda স্বয়ংক্রিয়ভাবে ইনফ্রাস্ট্রাকচার স্কেল করতে পারে। আপনার অ্যাপ্লিকেশনের উপর ট্রাফিক বাড়লে Lambda আপনাআপনি সেই অনুযায়ী স্কেল হবে।
  • কোনও ইনিশিয়াল কস্ট নেই: আপনি শুধুমাত্র আপনার কোড রান হওয়া সময়ের জন্য খরচ দেন, সুতরাং আপনি ব্যবহার না করলে খরচ হয় না।
  • ইভেন্ট ড্রিভেন: Lambda বিভিন্ন ইভেন্ট থেকে ট্রিগার হতে পারে, যেমন S3 ফাইল আপলোড, API Gateway কল, DynamoDB টেবিল আপডেট ইত্যাদি।

AWS Lambda ফাংশন কীভাবে কাজ করে?

  1. Lambda Function Creation: আপনি একটি Lambda ফাংশন তৈরি করবেন এবং এতে কোড লিখবেন।
  2. Trigger Setup: Lambda ফাংশনটি ট্রিগার করার জন্য নির্দিষ্ট ইভেন্ট সেট করবেন (যেমন S3 আপলোড, API Gateway, SNS টপিক ইত্যাদি)।
  3. Execution: নির্দিষ্ট ইভেন্ট ঘটলে Lambda কোড রান করবে।
  4. Output: কোড চলার পর Lambda আউটপুট উৎপন্ন করবে যা আপনি প্রয়োজনে অন্যান্য সিস্টেমে পাঠাতে পারেন (যেমন S3-তে ফাইল আপলোড করা, অথবা API Gateway-এ ডেটা পাঠানো)।

Lambda ফাংশন তৈরির সাধারণ পদক্ষেপ:

  1. Lambda Console এ লগইন করুন: AWS Management Console এ লগইন করুন এবং Lambda সেবা নির্বাচন করুন।

  2. নতুন ফাংশন তৈরি করুন:

    • "Create Function" এ ক্লিক করুন।
    • "Author from Scratch" নির্বাচন করুন।
    • ফাংশনের নাম দিন এবং রানটাইম নির্বাচন করুন (যেমন Node.js, Python, Java, Go ইত্যাদি)।
    • রোল সেট করুন (IAM Role), যেখানে Lambda ফাংশনটি বিভিন্ন AWS সেবার অ্যাক্সেস পাবে।
  3. কোড লিখুন: কোড লিখে "Deploy" বাটনে ক্লিক করুন।

  4. ট্রিগার সেট করুন: যেমন API Gateway, S3, CloudWatch ইত্যাদি।

  5. ফাংশন টেস্ট করুন: "Test" বাটনে ক্লিক করে Lambda ফাংশনটি টেস্ট করুন।

Example Code (Node.js) for AWS Lambda

ধরা যাক, আপনি একটি Lambda ফাংশন তৈরি করতে চান যা একটি সিম্পল API রিকোয়েস্টের প্রতি রেসপন্ড করবে।

Lambda Function Code (Node.js)

exports.handler = async (event) => {
    console.log('Received event: ', JSON.stringify(event, null, 2));

    // API Gateway থেকে আসা ইভেন্টের ডেটা পরীক্ষা করুন
    const responseMessage = 'Hello, AWS Lambda!';
    
    const response = {
        statusCode: 200,
        body: JSON.stringify({ message: responseMessage }),
    };
    
    return response;
};

Code Explanation:

  • exports.handler: এটি Lambda ফাংশনের এন্ট্রি পয়েন্ট। এখানে event অর্গুমেন্টটি ঐ ইভেন্ট বা ডেটা যা Lambda ফাংশনকে ট্রিগার করে।
  • console.log: ইভেন্টটি লগ করার জন্য ব্যবহার করা হয়েছে।
  • response: এই অবজেক্টটি API Gateway বা যে কোনো ট্রিগার সিস্টেমে রেসপন্স হিসেবে ফেরত পাঠানো হয়। এটি statusCode এবং body সহ ফর্ম্যাট করা হয়।

Lambda Function Test Example:

  1. Test Event: আপনি Lambda Console এ "Test" বাটনে ক্লিক করার পর একটি test event নির্বাচন করতে পারবেন। নিচে একটি সিম্পল test event:
{
  "key1": "value1",
  "key2": "value2"
}
  1. Expected Output:
{
  "statusCode": 200,
  "body": "{\"message\": \"Hello, AWS Lambda!\"}"
}

Lambda Function Trigger Example (API Gateway)

  1. API Gateway Setup: আপনি API Gateway ব্যবহার করে Lambda ফাংশনকে ট্রিগার করতে পারেন। এটি একটি HTTP API তৈরি করতে সহায়তা করে, যেখানে আপনি আপনার Lambda ফাংশনকে একটি এন্ডপয়েন্টের মাধ্যমে এক্সপোজ করতে পারেন।
  2. Create a New API: API Gateway থেকে একটি নতুন API তৈরি করুন এবং এটিকে Lambda ফাংশনের সাথে যুক্ত করুন।

Lambda Function Deployment Steps:

  1. Create Lambda Function: AWS Lambda Console এ গিয়ে নতুন Lambda ফাংশন তৈরি করুন।
  2. Attach Permissions: IAM Role নির্বাচন করুন যাতে Lambda ফাংশনটি প্রয়োজনীয় AWS রিসোর্সের অ্যাক্সেস পায়।
  3. Test the Lambda Function: Console থেকে Lambda ফাংশন টেস্ট করুন বা ট্রিগার (যেমন API Gateway) সেট করুন।

Conclusion:

AWS Lambda একটি শক্তিশালী সার্ভারলেস ফাংশন যা ইভেন্টের মাধ্যমে কোড চালাতে সাহায্য করে। এর মাধ্যমে আপনি সার্ভার ম্যানেজমেন্টের চিন্তা ছাড়াই কোড রান করতে পারেন। এটি স্কেলেবল, কস্ট-ইফেক্টিভ এবং সহজে ইন্টিগ্রেটেবল।

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

জাভা ফিডব্যাক এবং স্ট্রাকচার্ড কনকারেন্সি: বিবর্তনের গল্প

Introduction এই ভিডিওর নির্দিষ্ট অংশে জাভা ল্যাঙ্গুয়েজ আর্কিটেক্ট ব্রায়ান গোয়েটজ (Brian Goetz) আলোচনা করেছেন কীভাবে জাভার নতুন ফিচারগুলো তৈরি হয় এবং এতে সাধারণ ডেভেলপারদের মতামতের গুরুত্ব কতটুকু। বিশেষ করে Structured Concurrency -এর মতো জটিল ফিচারগুলো কেন বারবার 'Preview' অবস্থায় থাকে এবং কীভাবে কমিউনিটির ফিডব্যাক সেই ফিচারগুলোকে আরও নিখুঁত করতে সাহায্য করে, তা এখানে সহজভাবে বোঝানো হয়েছে। ১. ভালো ফিডব্যাক আসলে কী? ভিডিও রেফারেন্স: [ 34:53 ] ব্রায়ান গোয়েটজ বলছেন যে, জাভা টিম যখন কোনো নতুন ফিচারের খসড়া (Draft) বা প্রস্তাব (JEP) প্রকাশ করে, তখন তারা এমন কিছু জানতে চায় যা তারা নিজেরা আগে ভাবেনি। বিস্তারিত: একজন ডেভেলপার হিসেবে আমরা যখন কোনো নতুন ফিচার দেখি, আমাদের প্রথম প্রতিক্রিয়া হয় সেটার Syntax বা লেখার ধরন নিয়ে। কিন্তু ব্রায়ানের মতে, "এই লেখাটা কেন এমন হলো?" বা "এটা কোটলিন বা স্কালা-র মতো কেন নয়?"—এই ধরনের ফিডব্যাক খুব একটা কাজে আসে না। আসল দামী ফিডব্যাক হলো সেইটা, যা নতুন কোনো বাস্তব সমস্যা (Edge Case) তুলে ধরে। আমার চিন্তা: আপনি যদি কেবল দ...

Microservice Error Handling

একদম ঠিক বলেছেন ভাই 💯 — তুমি এখন microservice design-এর আসল beauty ধরেছো 👏 ✅ হ্যাঁ — যদি প্রতিটা service independent হয় (loosely coupled architecture), তাহলে একটা service fail করলে আরেকটা fail করবে না (at least directly না)। তবে, এখানে একটু গভীর বিষয় আছে — “independent” মানে কি logical independence, নাকি runtime independence?” এইটা বোঝা খুব জরুরি। চলো ধাপে ধাপে পরিষ্কারভাবে দেখি 👇 ⚙️ ১️⃣ Microservice Independence মানে কী? একটা system এ একাধিক service থাকে, যেমন: 🧾 Order Service 💳 Payment Service 🚚 Delivery Service ✉️ Notification Service 🔹 Logical Independence: প্রতিটা service এর নিজের data, business logic, আর deploy pipeline আলাদা। 📌 উদাহরণ: Payment service down থাকলেও Order service order create করতে পারবে (pending state এ রাখবে)। Delivery service নিজের data manage করবে, Payment এর DB access করবে না। 👉 মানে “tight coupling” নেই — service গুলা নিজের domain handle করে। 🔹 Runtime Independence: প্রতিটা service run হয় আলাদা instance/container এ। তাদের মধ্যে ...