AWS Lambda এর সাথে DocumentDB Integration

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) Serverless এবং Lambda Integration |
226
226

Amazon AWS Lambda একটি serverless কম্পিউটিং পরিষেবা যা আপনাকে কোড চালানোর জন্য কোনও সার্ভার পরিচালনা করতে দেয় না। AWS Lambda ব্যবহার করে আপনি বিভিন্ন AWS পরিষেবা, যেমন Amazon DocumentDB, এর সাথে সহজে ইন্টিগ্রেট করতে পারেন। DocumentDB-কে Lambda ফাংশনের সাথে সংযুক্ত করে আপনি অটোমেটেড ডেটা প্রসেসিং, অ্যাকশন ট্রিগারিং, ডেটাবেস অপারেশন (যেমন, ইনসার্ট, আপডেট, ডিলিট) এবং সোর্স থেকে ডেটা সংগ্রহ সহ বিভিন্ন কার্যক্রম পরিচালনা করতে পারেন।

এখানে AWS Lambda এর সাথে DocumentDB Integration করার ধাপগুলি বর্ণনা করা হয়েছে।


১. Lambda ফাংশন তৈরি করা

প্রথমে একটি Lambda ফাংশন তৈরি করতে হবে যা DocumentDB এর সাথে যোগাযোগ করবে এবং ডেটাবেসে প্রয়োজনীয় অপারেশন সম্পাদন করবে।

ধাপ:

  1. AWS Management Console এ লগইন করুন।
  2. AWS Lambda পরিষেবায় যান এবং Create Function নির্বাচন করুন।
  3. ফাংশনের নাম দিন এবং Runtime নির্বাচন করুন (যেমন Python, Node.js, Java ইত্যাদি)।
  4. Execution Role নির্বাচিত করুন অথবা নতুন একটি IAM Role তৈরি করুন যা Lambda ফাংশনকে DocumentDB এর সাথে সংযুক্ত হতে সহায়তা করবে।
  5. Lambda ফাংশন তৈরি করুন।

২. Lambda ফাংশনে DocumentDB কানেকশন সেটআপ করা

Lambda ফাংশনে DocumentDB এর সাথে কানেক্ট করতে, আপনি প্রথমে MongoDB-কে সমর্থনকারী লাইব্রেরি (যেমন mongodb লাইব্রেরি) ব্যবহার করতে পারেন। এটি MongoDB API-কে সমর্থন করে, যা DocumentDB এর সাথে যোগাযোগ করতে সক্ষম।

ধাপ:

  1. আপনার Lambda ফাংশনের Deployment Package তৈরি করতে হবে। যদি আপনি Python ব্যবহার করছেন, তবে pymongo লাইব্রেরি ইনস্টল করতে হবে।
pip install pymongo -t .
  1. এখন, আপনার কোডে MongoDB ড্রাইভার ব্যবহার করে DocumentDB-এর সাথে সংযোগ করার জন্য কোড লিখুন।

Python উদাহরণ:

import pymongo
import os

def lambda_handler(event, context):
    # DocumentDB Endpoint এবং Port
    host = os.environ['DOCDB_HOST']   # DocumentDB Endpoint URL
    port = "27017"                    # Default MongoDB port
    username = os.environ['DOCDB_USER']
    password = os.environ['DOCDB_PASSWORD']
    
    # MongoDB URI (DocumentDB-এর জন্য SSL সক্রিয়)
    uri = f"mongodb://{username}:{password}@{host}:{port}/?ssl=true&replicaSet=rs0&readPreference=primary&retryWrites=false"
    
    # MongoDB কানেকশন তৈরি
    client = pymongo.MongoClient(uri)
    
    # ডেটাবেস এবং কোলেকশন নির্বাচন
    db = client['yourDatabase']
    collection = db['yourCollection']
    
    # ডেটা ইনসার্ট করা
    result = collection.insert_one({"name": "Lambda Example", "message": "Hello, DocumentDB!"})
    
    return {
        'statusCode': 200,
        'body': f"Document inserted with id: {result.inserted_id}"
    }

এখানে:

  • DocumentDB-এর host, username, এবং password পরিবেশ ভেরিয়েবল থেকে নেয়া হয়েছে।
  • pymongo লাইব্রেরি ব্যবহার করে DocumentDB এর সাথে সংযোগ করা হচ্ছে।

৩. Lambda Execution Role এবং VPC Configuration

DocumentDB একটি VPC (Virtual Private Cloud)-এর মধ্যে কাজ করে, তাই Lambda ফাংশনকে সেই VPC-এর মধ্যে সংযুক্ত করতে হবে। আপনি যদি Lambda ফাংশনটি VPC এর মধ্যে সংযুক্ত না করেন, তবে এটি DocumentDB এর সাথে যোগাযোগ করতে পারবে না।

ধাপ:

  1. Lambda ফাংশনের Execution Role এ VPC অ্যাক্সেস অনুমতি দিন।
  2. VPC সেটিংসে Lambda ফাংশনটি সেই VPC এর মধ্যে অ্যাসাইন করুন যেখানে DocumentDB হোস্ট করা হয়েছে।
  3. Lambda ফাংশনকে Private Subnet (যেখানে DocumentDB হোস্ট করা থাকে) এবং Security Group অ্যাসাইন করুন যা DocumentDB ক্লাস্টারে অ্যাক্সেস অনুমতি দেয়।

৪. Environment Variables সেট করা

DocumentDB এর সাথে সংযোগ করতে আপনার Lambda ফাংশনে environment variables সেট করতে হবে, যেমন:

  • DOCDB_HOST: DocumentDB ক্লাস্টারের endpoint।
  • DOCDB_USER: DocumentDB ব্যবহারকারীর নাম।
  • DOCDB_PASSWORD: DocumentDB পাসওয়ার্ড।

AWS Management Console এ Lambda ফাংশনের Environment variables সেকশনে এগুলি যোগ করুন।


৫. Lambda ফাংশন ট্রিগার সেট করা

Lambda ফাংশনটিকে একটি ট্রিগার দ্বারা চালিত করতে হবে। আপনি বিভিন্ন ধরণের ট্রিগার সেট করতে পারেন, যেমন:

  • API Gateway: REST API এর মাধ্যমে Lambda ফাংশন ট্রিগার করুন।
  • S3 Bucket: S3 বকেট থেকে একটি ফাইল আপলোড হলে Lambda ফাংশন চালান।
  • SNS/SQS: SNS বা SQS থেকে একটি মেসেজ এলে Lambda ফাংশন চালান।

API Gateway Example: Lambda ফাংশনটি HTTP অ্যাপ্লিকেশনের অংশ হিসেবে কাজ করতে পারে, যেখানে API Gateway দিয়ে HTTP রিকোয়েস্টগুলি Lambda ফাংশনের কাছে পাঠানো হবে।


৬. Lambda এবং DocumentDB-এর মধ্যে অ্যাক্সেস মনিটরিং এবং ত্রুটি নির্ধারণ

  • CloudWatch Logs: Lambda ফাংশনের লগ দেখার জন্য CloudWatch Logs ব্যবহার করুন। এর মাধ্যমে আপনি দেখতে পারবেন যে ফাংশনটি সফলভাবে কাজ করছে কিনা বা কোনো ত্রুটি হচ্ছে কিনা।
  • CloudWatch Metrics: Lambda ফাংশনের পারফরম্যান্স মেট্রিক্স এবং DocumentDB-এর পারফরম্যান্স ট্র্যাক করতে CloudWatch Metrics ব্যবহার করতে পারেন।

৭. খরচ এবং কর্মক্ষমতা অপটিমাইজেশন

Lambda ফাংশনের খরচ এবং কর্মক্ষমতা অপটিমাইজ করতে আপনি নিম্নলিখিত বিষয়গুলো লক্ষ্য করতে পারেন:

  • Function Timeout: Lambda ফাংশনের timeout সীমা 15 মিনিটের মধ্যে থাকবে, তাই আপনাকে কিভাবে আপনার ফাংশনকে দ্রুত সম্পন্ন করতে হবে তা বিবেচনা করতে হবে।
  • Memory Allocation: Lambda ফাংশনের জন্য উপযুক্ত মেমরি বরাদ্দ করা উচিত যাতে এটি কার্যকরীভাবে কাজ করতে পারে এবং খরচ অপটিমাইজ হয়।
  • DocumentDB Query Optimization: MongoDB কুয়েরি অপটিমাইজেশনের মতোই DocumentDB এর কুয়েরি অপটিমাইজেশন করতে হবে যাতে ফাংশনটির কর্মক্ষমতা বৃদ্ধি পায়।

সারাংশ

AWS Lambda এবং Amazon DocumentDB এর সংযোগ একটি শক্তিশালী এবং স্কেলেবল সমাধান প্রদান করে, যা ডেটাবেস অপারেশনগুলোকে স্বয়ংক্রিয় করতে সাহায্য করে। Lambda ফাংশন ব্যবহারের মাধ্যমে আপনি DocumentDB-এ ডেটা ইনসার্ট, আপডেট, ডিলিট এবং আরও অনেক ধরনের অপারেশন সম্পাদন করতে পারেন। সঠিকভাবে VPC কনফিগারেশন, IAM রোল এবং নিরাপত্তা সেটিংস কনফিগার করে আপনি একটি সুরক্ষিত এবং পারফরম্যান্স-অপটিমাইজড ফাংশন তৈরি করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion