Edge Computing: Building Full-Stack Apps with Cloudflare Pages Functions
Cloudflare Pages সাধারণত স্ট্যাটিক ওয়েবসাইট হোস্ট করার জন্য পরিচিত হলেও, এর **Functions** ফিচারের মাধ্যমে এখন সম্পূর্ণ ফ্রিতে ফুল-স্ট্যাক অ্যাপ্লিকেশন তৈরি করা সম্ভব। এটি ব্যাকএন্ডে Cloudflare Workers এর শক্তিশালী V8 আইসোলেট ইঞ্জিন ব্যবহার করে, যা ট্র্যাডিশনাল নোড সার্ভার ছাড়াই গ্লোবাল এজ নেটওয়ার্কে কোড এক্সিকিউট করে।
কোনো প্রকার জটিল সার্ভার কনফিগারেশন ছাড়া আপনার ফ্রন্টএন্ড কোডের সাথেই কীভাবে সার্ভারলেস এপিআই এন্ডপয়েন্ট তৈরি করবেন, তা নিচে দেওয়া হলো।
১. ডিরেক্টরি স্ট্রাকচার
ক্লাউডফ্লেয়ার ফাংশনস অ্যাক্টিভেট করার মূল ট্রিক হলো আপনার প্রোজেক্টের রুট (Root) ডিরেক্টরিতে একটি functions নামে ফোল্ডার তৈরি করা।
my-fullstack-app/
├── functions/
│ └── api/
│ └── hello.js <-- এটি সার্ভারলেস এন্ডপয়েন্ট হবে
├── index.html
└── package.json
ধাপ ২: ফাংশন কোড কনফিগারেশন (`hello.js`)
ফাইলটির ভেতরে ক্লাউডফ্লেয়ারের স্ট্যান্ডার্ড onRequest হ্যান্ডলার ব্যবহার করে এপিআই রেসপন্স হ্যান্ডেল করতে হবে:
export async function onRequest(context) {
// context অবজেক্টে রিকোয়েস্টের সমস্ত মেটাডেটা এবং এনভায়রনমেন্ট ভ্যারিয়েবল থাকে
const systemData = {
status: "success",
message: "Hello from Cloudflare Edge Architecture!",
timestamp: new Date().toISOString(),
clientCountry: context.request.cf.country || "Unknown"
};
return new Response(JSON.stringify(systemData), {
headers: {
"content-type": "application/json;charset=UTF-8",
"Access-Control-Allow-Origin": "*"
}
});
}
ধাপ ৩: লোকাল এনভায়রনমেন্টে টেস্টিং ও ডেপ্লয়মেন্ট
কোডটি লোকালি রান এবং টেস্ট করতে ক্লাউডফ্লেয়ারের CLI টুল Wrangler ব্যবহার করতে হবে:
# Wrangler দিয়ে লোকাল ডেভেলপমেন্ট সার্ভার রান করা
npx wrangler pages dev .
# কোড প্রোডাকশনে পুশ করা (অথবা GitHub এর সাথে সিঙ্ক থাকলে অটো ডেপ্লয় হবে)
git add . && git commit -m "added serverless function" && git push
এখন আপনার সাইটের /api/hello ইউআরএল-এ ভিজিট করলেই সরাসরি এজ নেটওয়ার্ক থেকে জেসন রেসপন্স চলে আসবে।
প্রো-টিপ: আপনি এই ফাংশনগুলোর মাধ্যমে Cloudflare KV (Key-Value) স্টোরেজ বা D1 Database (SQL) এর সাথে কানেক্ট করে সম্পূর্ণ ডায়নামিক ও ডেটাবেজ-ড্রিভেন ওয়েব অ্যাপ্লিকেশন সম্পূর্ণ ফ্রিতে হোস্ট করতে পারবেন।