AWS Lambda Layers একটি শক্তিশালী বৈশিষ্ট্য যা Lambda ফাংশনের মধ্যে কোড এবং লাইব্রেরি শেয়ার করার জন্য ব্যবহৃত হয়। এর মাধ্যমে একাধিক Lambda ফাংশনের মধ্যে কোড বা লাইব্রেরি পুনরায় ব্যবহার করা সম্ভব। এতে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায়, ডিপেনডেন্সির আপডেট সহজ হয় এবং Lambda ফাংশনের সাইজ কমে যায়। একাধিক Lambda ফাংশনে একই Layer পুনরায় ব্যবহার করা খুবই কার্যকরী, বিশেষ করে যখন আপনি অনেক Lambda ফাংশনে একই থার্ড-পার্টি লাইব্রেরি বা কোড ব্যবহার করছেন।
এখানে আলোচনা করা হবে কীভাবে বিভিন্ন Lambda ফাংশনের মধ্যে একাধিক Lambda Layer পুনরায় ব্যবহার করা যায় এবং এর সুবিধাসমূহ কী কী।
Lambda Layers পুনরায় ব্যবহার করার প্রক্রিয়া
Step 1: Lambda Layer তৈরি করা
প্রথমে আপনাকে একটি Layer তৈরি করতে হবে, যাতে আপনি পুনরায় ব্যবহারযোগ্য কোড বা লাইব্রেরি সংরক্ষণ করতে পারবেন। এটি সাধারণত একটি ZIP ফাইল হিসেবে তৈরি করা হয় এবং এতে থাকে লাইব্রেরি বা কোড যা আপনি একাধিক Lambda ফাংশনে ব্যবহার করতে চান।
Python উদাহরণ (requests লাইব্রেরি):
Python লাইব্রেরি
requestsইনস্টল করতে হবে:pip install requests -t ./pythonএরপর
pythonফোল্ডারটি ZIP ফাইল হিসেবে আর্কাইভ করতে হবে:zip -r my-layer.zip python/- AWS Management Console এ যান, Lambda সেবা নির্বাচন করুন, এবং Layers এ গিয়ে Create Layer এ ক্লিক করুন।
- ZIP ফাইল আপলোড করুন এবং Layer এর নাম দিন (যেমন
MyCustomLayer)। - Compatible runtimes নির্বাচন করুন (যেমন Python 3.8, Node.js 14.x ইত্যাদি)।
- Create বাটনে ক্লিক করুন।
Step 2: Lambda ফাংশনে Layer যোগ করা
Layer তৈরি হওয়ার পর, এটি একাধিক Lambda ফাংশনের মধ্যে পুনরায় ব্যবহার করার জন্য সংযুক্ত করা যাবে। এর জন্য আপনাকে প্রতিটি Lambda ফাংশনে এই Layer যোগ করতে হবে।
- Lambda ফাংশন তৈরি করুন অথবা বিদ্যমান একটি Lambda ফাংশন নির্বাচন করুন।
- Layers সেকশনে গিয়ে Add a Layer ক্লিক করুন।
- Custom layers নির্বাচন করুন এবং তৈরি করা Layer (
MyCustomLayer) নির্বাচন করুন। - Add বাটনে ক্লিক করুন।
এইভাবে আপনি একই Layer বিভিন্ন Lambda ফাংশনে ব্যবহার করতে পারবেন।
Step 3: একাধিক Lambda ফাংশনে Layer ব্যবহার
একবার Layer তৈরি হয়ে গেলে এবং তা Lambda ফাংশনের সাথে যুক্ত হয়ে গেলে, আপনি একাধিক Lambda ফাংশনে একই Layer ব্যবহার করতে পারবেন। এর ফলে, আপনি যদি কোনো কোড বা লাইব্রেরির সংস্করণ পরিবর্তন করেন, তাহলে শুধুমাত্র Layer আপডেট করলেই সব Lambda ফাংশনে সেই পরিবর্তন প্রভাব ফেলবে।
যেমন, যদি আপনি নতুন একটি requests লাইব্রেরি সংস্করণ যোগ করতে চান, তাহলে আপনাকে শুধু Layer আপডেট করতে হবে এবং সমস্ত Lambda ফাংশনগুলো নতুন সংস্করণ ব্যবহার করবে।
Lambda Layers এর সুবিধা
- কোড পুনঃব্যবহার: একাধিক Lambda ফাংশনের মধ্যে একই কোড বা লাইব্রেরি ব্যবহার করতে পারেন। এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে এবং কোড ডুপ্লিকেশন কমায়।
- রক্ষণাবেক্ষণ সহজ: একটি Layer আপডেট করার মাধ্যমে আপনি সমস্ত Lambda ফাংশনে পরিবর্তন প্রভাব ফেলতে পারেন। এতে লাইব্রেরি বা কোড আপডেট করার প্রক্রিয়া দ্রুত হয়।
- কোডের সাইজ কমানো: Lambda ফাংশনের কোডে বড় লাইব্রেরি বা ডিপেনডেন্সি রাখার পরিবর্তে, সেগুলোকে Layer হিসেবে রেখে ফাংশনের কোড সাইজ কমানো যায়।
- স্কেলেবিলিটি: যখন Lambda ফাংশনগুলো স্কেল করা হয়, তখন Layer একাধিক ফাংশন দ্বারা ব্যবহার হওয়ায় পারফরম্যান্স এবং ম্যানেজমেন্ট সহজ হয়।
- সহজ ডিপ্লয়মেন্ট: একাধিক Lambda ফাংশনে একই Layer ব্যবহার করলে, পরিবর্তন বা নতুন সংস্করণ ডিপ্লয় করা সহজ হয়, কারণ ফাংশনের কোডে কোনো পরিবর্তন করতে হয় না।
Lambda Layers পুনরায় ব্যবহার করার উদাহরণ
ধরা যাক, আপনার একটি Web Scraping Lambda ফাংশন রয়েছে, যা বিভিন্ন ওয়েবসাইট থেকে ডেটা সংগ্রহ করে। এই ফাংশনটি beautifulsoup4 এবং requests লাইব্রেরি ব্যবহার করছে। আপনি এই লাইব্রেরিগুলিকে একটি Layer হিসেবে তৈরি করতে পারেন, এবং এরপর এই Layer টি অন্যান্য Lambda ফাংশনে ব্যবহার করতে পারেন, যেমন:
- Lambda Function 1: ওয়েব ডেটা সংগ্রহ করার জন্য।
- Lambda Function 2: API গেটওয়ে থেকে ডেটা প্রক্রিয়া করার জন্য।
- Lambda Function 3: ইমেইল পাঠানোর জন্য।
এখানে, আপনি শুধু একটি Layer তৈরি করে ওই Layer কে তিনটি Lambda ফাংশনের মধ্যে শেয়ার করতে পারেন, এবং লাইব্রেরির কোনো আপডেট বা পরিবর্তন করলে শুধুমাত্র Layer আপডেট করলেই তা সকল ফাংশনে প্রভাব ফেলবে।
সারাংশ
AWS Lambda Layers ব্যবহারের মাধ্যমে আপনি একাধিক Lambda ফাংশনের মধ্যে কোড এবং লাইব্রেরি পুনরায় ব্যবহার করতে পারেন। এটি কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়, ডিপেনডেন্সির আপডেট সহজ করে এবং ফাংশনের সাইজ কমায়। Lambda Layers ব্যবহার করার মাধ্যমে আপনি Lambda ফাংশনের রক্ষণাবেক্ষণ সহজ করতে পারেন এবং একাধিক ফাংশনে একই কোড বা লাইব্রেরি শেয়ার করতে পারবেন, যা সিস্টেমের স্কেলেবিলিটি এবং পারফরম্যান্সের জন্য উপকারী।
Read more