AWS Lambda ফাংশন তৈরি ও কনফিগার করতে বিভিন্ন পদ্ধতি রয়েছে, যার মধ্যে YAML ফাইল ব্যবহারের মাধ্যমে Lambda ডিফাইন করা একটি জনপ্রিয় পদ্ধতি। YAML (YAML Ain't Markup Language) হলো একটি ডাটা সিরিয়ালাইজেশন ফরম্যাট যা সহজে পড়তে এবং লিখতে সুবিধাজনক। Serverless Framework এর মাধ্যমে YAML ফাইল ব্যবহার করে AWS Lambda ফাংশন ডিফাইন করা সম্ভব।
Axure RP প্রোটোটাইপ বা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য যখন Lambda ফাংশন ব্যবহার করা হয়, তখন আপনি সহজে YAML কনফিগারেশন ব্যবহার করে Lambda ফাংশন ডিফাইন করতে পারেন, বিশেষ করে যদি আপনি Serverless Framework বা অন্যান্য Infrastructure-as-Code (IaC) টুলস ব্যবহার করেন।
এখানে দেখানো হবে কীভাবে YAML ফাইল ব্যবহার করে Lambda ফাংশন ডিফাইন করা যায় এবং সেই ফাংশনটি কিভাবে অ্যাপ্লিকেশন অথবা প্রোটোটাইপে ইন্টিগ্রেট করা যায়।
1. Serverless Framework ইনস্টল করা
প্রথমে আপনাকে Serverless Framework ইনস্টল করতে হবে, যা YAML ফাইলের মাধ্যমে Lambda ফাংশন ডিপ্লয় এবং কনফিগার করার সুবিধা দেয়।
Serverless Framework ইনস্টল করার ধাপ:
- Node.js ইনস্টল করুন (যদি আগে না করে থাকেন)।
তারপর, আপনি npm (Node Package Manager) ব্যবহার করে Serverless Framework ইনস্টল করতে পারেন:
npm install -g serverlessServerless Framework ইনস্টল হওয়ার পরে, একটি নতুন প্রজেক্ট তৈরি করতে:
serverless create --template aws-nodejs --path my-service cd my-service
2. YAML ফাইল (serverless.yml) কনফিগারেশন
serverless.yml ফাইল হলো Serverless Framework এর কনফিগারেশন ফাইল যেখানে আপনি Lambda ফাংশন এবং অন্যান্য AWS রিসোর্স (যেমন API Gateway, DynamoDB, S3 ইত্যাদি) কনফিগার করতে পারবেন। YAML ফাইলটি সহজে পরিবর্তনযোগ্য এবং পড়তে সুবিধাজনক।
serverless.yml এর মূল কাঠামো:
service: my-service # আপনার সেবা বা অ্যাপ্লিকেশনের নাম
provider:
name: aws
runtime: nodejs14.x # Lambda ফাংশনের রানটাইম
functions:
myFunction: # Lambda ফাংশনের নাম
handler: handler.myFunction # ফাংশনটির হ্যান্ডলার
events:
- http:
path: my-path # HTTP রিকোয়েস্টের জন্য এন্ডপয়েন্ট
method: get # HTTP মেথড (GET, POST, ইত্যাদি)
resources:
Resources:
MyBucket:
Type: AWS::S3::Bucket # অতিরিক্ত রিসোর্স যেমন S3 Bucket
কনফিগারেশন ব্যাখ্যা:
- service: এটি আপনার সেবা বা অ্যাপ্লিকেশনের নাম।
- provider: এখানে
awsপ্রদানকারী নির্বাচন করা হয়েছে এবং Lambda ফাংশনের রানটাইম হিসেবেnodejs14.xনির্ধারণ করা হয়েছে। - functions: Lambda ফাংশনটি এখানে ডিফাইন করা হয়েছে।
handlerফাংশনটি নির্দেশ করে যে ফাংশনের কোড কোথায় অবস্থিত এবং কীভাবে কল করা হবে। - events: এই অংশটি Lambda ফাংশনটি কীভাবে ট্রিগার হবে তা নির্ধারণ করে, যেমন HTTP রিকোয়েস্টের মাধ্যমে।
- resources: এখানে অন্যান্য AWS রিসোর্স যেমন S3 Bucket, DynamoDB টেবিল ইত্যাদি ডিফাইন করা হয়, যা Lambda ফাংশনের সাথে ইন্টিগ্রেট করা যাবে।
3. Lambda ফাংশন কোড লেখা
Lambda ফাংশনের কোড সাধারণত handler.js ফাইলে থাকে। আপনি এখানে ফাংশনের জন্য কোড লিখবেন যা কার্যকরী হবে যখন Lambda ফাংশন ট্রিগার হবে।
handler.js ফাইলের উদাহরণ:
module.exports.myFunction = async (event) => {
console.log("Lambda function triggered");
// Lambda ফাংশনটি HTTP রিকোয়েস্টের সাথে কাজ করছে
return {
statusCode: 200,
body: JSON.stringify({
message: 'Hello from Lambda!',
}),
};
};
এখানে myFunction নামক ফাংশনটি Lambda ফাংশনের কার্যকরী অংশ এবং এটি HTTP GET রিকোয়েস্টের মাধ্যমে কল হবে।
4. Lambda ফাংশন ডিপ্লয় করা
যখন আপনার serverless.yml কনফিগারেশন এবং Lambda কোড প্রস্তুত, তখন আপনি serverless deploy কমান্ডের মাধ্যমে ফাংশনটি AWS তে ডিপ্লয় করতে পারেন।
serverless deploy
এই কমান্ডটি AWS এর Lambda, API Gateway, এবং অন্যান্য নির্ধারিত রিসোর্সগুলিকে কনফিগার করে। ডিপ্লয়মেন্টের পরে আপনি একটি API URL পাবেন যার মাধ্যমে আপনি Lambda ফাংশনটি HTTP রিকোয়েস্টের মাধ্যমে ট্রিগার করতে পারবেন।
5. Lambda ফাংশন ট্রিগার করা
যেহেতু এই কনফিগারেশনটি HTTP ইভেন্টের সাথে সংযুক্ত, আপনি একটি ওয়েব ব্রাউজার বা Postman এর মাধ্যমে API URL তে GET রিকোয়েস্ট পাঠিয়ে Lambda ফাংশনটি ট্রিগার করতে পারেন।
API URL উদাহরণ:
https://xyz12345.execute-api.us-east-1.amazonaws.com/dev/my-path
এই URL তে GET রিকোয়েস্ট পাঠালে, আপনার Lambda ফাংশনটি ট্রিগার হবে এবং এটি "Hello from Lambda!" মেসেজ ফিরিয়ে দেবে।
6. Axure RP তে Lambda ইন্টিগ্রেশন
Axure RP প্রোটোটাইপ বা অ্যাপ্লিকেশনে Lambda ফাংশন ব্যবহার করতে, আপনি API Gateway এবং HTTP Request অ্যাকশান ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনার প্রোটোটাইপে কোনো বোতাম থাকে যা Lambda ফাংশন ট্রিগার করবে, তাহলে আপনি নিচের পদক্ষেপগুলো অনুসরণ করতে পারেন:
- HTTP Request তৈরি করুন: Axure RP এ Interaction তৈরি করে HTTP Request ব্যবহার করতে পারেন, যেখানে API Gateway URL প্রদান করা হবে।
- API Gateway ইন্টিগ্রেশন: API Gateway URL দিয়ে Lambda ফাংশন ট্রিগার করুন, এবং Axure RP-এর মাধ্যমে সেই রেসপন্স (যেমন JSON) ব্যবহার করুন UI আপডেট করার জন্য।
সারাংশ
YAML ফাইল ব্যবহার করে Lambda ফাংশন ডিফাইন করা সহজ এবং পরিষ্কার। Serverless Framework ব্যবহার করে, আপনি Lambda ফাংশন এবং অন্যান্য AWS রিসোর্স (যেমন API Gateway, S3, DynamoDB) কনফিগার করতে পারেন। এই কনফিগারেশনটি একত্রে রেখে, আপনি Lambda ফাংশনকে AWS তে ডিপ্লয় করতে পারেন এবং অ্যাপ্লিকেশন বা প্রোটোটাইপে ইন্টিগ্রেট করতে পারেন, যেমন Axure RP-এর মাধ্যমে API Gateway ব্যবহার করে Lambda ফাংশন ট্রিগার করা।
Read more