AWS API Gateway এবং Lambda ফাংশন একসঙ্গে ব্যবহার করা একটি জনপ্রিয় প্যাটার্ন, যা ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনের জন্য সেগমেন্টেড ও স্কেলেবল সলিউশন প্রদান করে। API Gateway HTTP(S) রিকোয়েস্ট গ্রহণ করে এবং সেগুলোকে AWS Lambda ফাংশনে পাঠিয়ে থাকে, যা ইভেন্ট হিসেবে কাজ করে। এই প্রক্রিয়াটি Serverless Architecture তৈরি করার জন্য অত্যন্ত কার্যকরী।
এখানে, আমরা দেখব কীভাবে API Gateway এর মাধ্যমে AWS Lambda ফাংশনকে ট্রিগার করা যায়, যাতে HTTP রিকোয়েস্ট পেয়ে Lambda ফাংশন স্বয়ংক্রিয়ভাবে কাজ করতে পারে।
API Gateway ও Lambda ফাংশন ইন্টিগ্রেশন
API Gateway একধরনের API Management সেবা যা HTTP(S) রিকোয়েস্ট প্রক্রিয়া করে এবং সেই রিকোয়েস্টকে Lambda ফাংশন বা অন্যান্য AWS সেবায় পাঠায়। Lambda ফাংশনটি HTTP রিকোয়েস্টের প্রেক্ষিতে বিভিন্ন কাজ সম্পাদন করতে পারে।
Step 1: API Gateway তৈরি করা
প্রথমে API Gateway তৈরি করতে হবে যা HTTP(S) রিকোয়েস্ট গ্রহণ করবে এবং Lambda ফাংশনে পাঠাবে।
- AWS Management Console এ লগইন করুন এবং API Gateway সেবা নির্বাচন করুন।
Create API এ ক্লিক করুন। এখানে দুটি ধরনের API তৈরি করা যায়:
- REST API: ক্লাসিক RESTful API গঠন।
- HTTP API: লাইটওয়েট, উচ্চ পারফরম্যান্স API।
আমরা REST API নির্বাচন করব।
- Create new API নির্বাচন করে API এর একটি নাম দিন (যেমন
MyLambdaTriggerAPI) এবং প্রয়োজনীয় কনফিগারেশন সিলেক্ট করুন। - Create Resource: API এর জন্য একটি রিসোর্স (URL পাথ) তৈরি করুন। উদাহরণস্বরূপ
/trigger.
Step 2: Lambda Function তৈরি করা
- AWS Lambda সেবা নির্বাচন করুন এবং Create function এ ক্লিক করুন।
- Author from scratch নির্বাচন করুন এবং ফাংশনের নাম দিন (যেমন
MyLambdaFunction). - Runtime হিসেবে Python, Node.js, Java ইত্যাদি নির্বাচন করুন।
- Execution role নির্বাচন করুন বা নতুন একটি IAM role তৈরি করুন যা Lambda ফাংশনকে API Gateway এর মাধ্যমে ট্রিগার হতে অনুমতি দেবে।
Lambda ফাংশনের একটি সাধারণ উদাহরণ:
def lambda_handler(event, context):
name = event['queryStringParameters']['name']
message = f"Hello, {name}!"
return {
'statusCode': 200,
'body': message
}
এই কোডটি HTTP রিকোয়েস্টে name কুয়েরি প্যারামিটার গ্রহণ করে এবং তাকে রেসপন্স হিসেবে পাঠাবে।
Step 3: API Gateway এবং Lambda ফাংশন সংযোগ করা
- API Gateway এর রিসোর্সে গিয়ে Create Method এ ক্লিক করুন এবং GET (বা আপনার প্রয়োজন অনুযায়ী POST) নির্বাচন করুন।
- Integration type হিসেবে Lambda Function নির্বাচন করুন এবং আপনার তৈরি Lambda ফাংশনের নাম (যেমন
MyLambdaFunction) দিন। - Save বাটনে ক্লিক করুন এবং তারপর Deploy API বাটনে ক্লিক করুন।
- API এর একটি Deployment stage (যেমন
prod) নির্বাচন করুন এবং Deploy বাটনে ক্লিক করুন।
এখন, API Gateway HTTP রিকোয়েস্ট গ্রহণ করে Lambda ফাংশনকে ট্রিগার করবে।
Step 4: Lambda Function টেস্ট করা
- API Gateway ডিপ্লয় করার পর, আপনি API এর URL পাবেন (যেমন:
https://xyz12345.execute-api.us-west-2.amazonaws.com/prod/trigger). ব্রাউজারে বা Postman এ এই URL এ GET রিকোয়েস্ট পাঠান, যেমন:
https://xyz12345.execute-api.us-west-2.amazonaws.com/prod/trigger?name=John- আপনি যদি সঠিকভাবে সব কনফিগার করে থাকেন, তবে Lambda ফাংশনটি
name=Johnপ্যারামিটারটি গ্রহণ করবে এবংHello, John!এর মতো একটি রেসপন্স প্রদান করবে।
Step 5: API Gateway এর মাধ্যমে Lambda Function সুরক্ষা করা (ঐচ্ছিক)
API Gateway তে সিকিউরিটি ফিচারগুলো ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ। যেমন:
- IAM Authorizer: API Gateway রিকোয়েস্টগুলোকে IAM roles বা policies এর মাধ্যমে সুরক্ষিত করতে পারেন।
- Lambda Authorizer: একটি কাস্টম Lambda ফাংশন ব্যবহার করে ব্যবহারকারী যাচাই করতে পারেন।
- API Keys: API কে সুরক্ষিত করতে API keys ব্যবহার করতে পারেন।
এছাড়া, CORS (Cross-Origin Resource Sharing) কনফিগারেশন দিয়ে, আপনি বিশেষ ওয়েব সাইট বা ডোমেইন থেকে API ব্যবহার সীমাবদ্ধ করতে পারেন।
সারাংশ
AWS API Gateway এর মাধ্যমে Lambda ফাংশন ট্রিগার করা খুবই কার্যকরী, বিশেষ করে যখন আপনি HTTP(S) রিকোয়েস্ট গ্রহণ করতে চান এবং সেই রিকোয়েস্ট অনুযায়ী Lambda ফাংশন কার্যকর করতে চান। API Gateway বিভিন্ন ধরনের HTTP রিকোয়েস্ট প্রসেস করতে পারে, এবং Lambda ফাংশন তা নিয়ে কাজ করে। এই ইন্টিগ্রেশনটি Serverless architecture তৈরি করতে সাহায্য করে, যেখানে সার্ভার বা ইনফ্রাস্ট্রাকচার ম্যানেজমেন্টের প্রয়োজন নেই এবং সমস্ত কাজ কোডের মাধ্যমে পরিচালিত হয়।
Read more