আপনার গতিশীল কন্টেন্ট তৈরি এবং পরিবেশন করতে অথবা মাইক্রোসার্ভিসেস হিসেবে REST API তৈরি করতে Firebase Hosting এর সাথে Cloud Run পেয়ার করুন।
Cloud Run ব্যবহার করে, আপনি একটি কন্টেইনার ইমেজে প্যাকেজ করা একটি অ্যাপ্লিকেশন স্থাপন করতে পারেন। তারপর, Firebase Hosting ব্যবহার করে, আপনি আপনার কন্টেইনারাইজড অ্যাপটি ট্রিগার করার জন্য HTTPS অনুরোধগুলিকে নির্দেশ করতে পারেন।
- Cloud Run বেশ কয়েকটি ভাষা সমর্থন করে (যার মধ্যে রয়েছে Go, Node.js, Python এবং Java), যা আপনাকে আপনার পছন্দের প্রোগ্রামিং ভাষা এবং কাঠামো ব্যবহার করার নমনীয়তা দেয়।
- Cloud Run স্বয়ংক্রিয়ভাবে এবং অনুভূমিকভাবে আপনার কন্টেইনারের চিত্রটি প্রাপ্ত অনুরোধগুলি পরিচালনা করার জন্য স্কেল করে , তারপর চাহিদা কমে গেলে স্কেল করে।
- আপনি শুধুমাত্র অনুরোধ পরিচালনার সময় ব্যবহৃত CPU, মেমরি এবং নেটওয়ার্কিংয়ের জন্য অর্থ প্রদান করবেন ।
উদাহরণস্বরূপ, Firebase Hosting সাথে সমন্বিত Cloud Run জন্য কেস এবং নমুনা ব্যবহারের জন্য, আমাদের সার্ভারলেস ওভারভিউ দেখুন।
এই নির্দেশিকাটি আপনাকে দেখাবে কিভাবে:
- একটি সহজ হ্যালো ওয়ার্ল্ড অ্যাপ্লিকেশন লিখুন।
- একটি অ্যাপ কনটেইনারাইজ করুন এবং Artifact Registry আপলোড করুন
- Cloud Run কন্টেইনার ইমেজ স্থাপন করুন
- আপনার কন্টেইনারাইজড অ্যাপে সরাসরি Hosting অনুরোধ
মনে রাখবেন যে ডায়নামিক কন্টেন্ট পরিবেশনের কর্মক্ষমতা উন্নত করতে, আপনি ঐচ্ছিকভাবে আপনার ক্যাশে সেটিংস টিউন করতে পারেন।
শুরু করার আগে
Cloud Run ব্যবহার করার আগে, আপনাকে কিছু প্রাথমিক কাজ সম্পন্ন করতে হবে, যার মধ্যে রয়েছে Cloud Billing অ্যাকাউন্ট সেট আপ করা, Cloud Run API সক্ষম করা এবং gcloud কমান্ড লাইন টুল ইনস্টল করা।
আপনার প্রকল্পের জন্য বিলিং সেট আপ করুন
Cloud Run বিনামূল্যে ব্যবহারের কোটা প্রদান করে, তবে Cloud Run ব্যবহার করতে বা চেষ্টা করার জন্য আপনার ফায়ারবেস প্রকল্পের সাথে সম্পর্কিত একটি Cloud Billing অ্যাকাউন্ট থাকতে হবে।
API সক্ষম করুন এবং SDK ইনস্টল করুন
Google API কনসোলে Cloud Run API সক্ষম করুন:
গুগল এপিআই কনসোলে Cloud Run এপিআই পৃষ্ঠাটি খুলুন।
অনুরোধ করা হলে, আপনার Firebase প্রকল্পটি নির্বাচন করুন।
Cloud Run এপিআই পৃষ্ঠায় সক্ষম করুন ক্লিক করুন।
ক্লাউড SDK ইনস্টল এবং আরম্ভ করুন ।
gcloudটুলটি সঠিক প্রকল্পের জন্য কনফিগার করা আছে কিনা তা পরীক্ষা করুন:gcloud config list
ধাপ ১ : নমুনা আবেদনপত্রটি লিখুন
মনে রাখবেন যে Cloud Run নিম্নলিখিত নমুনায় দেখানো ভাষাগুলি ছাড়াও আরও অনেক ভাষা সমর্থন করে।
যাও
helloworld-goনামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপর ডিরেক্টরিটি এতে পরিবর্তন করুন:mkdir helloworld-go
cd helloworld-go
helloworld.goনামে একটি নতুন ফাইল তৈরি করুন, তারপর নিম্নলিখিত কোডটি যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORTপরিবেশ ভেরিয়েবল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি তৈরি হয়ে গেছে এবং কন্টেইনারাইজ করে Artifact Registry আপলোড করার জন্য প্রস্তুত।
নোড.জেএস
helloworld-nodejsনামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপর ডিরেক্টরিটি এতে পরিবর্তন করুন:mkdir helloworld-nodejs
cd helloworld-nodejs
নিম্নলিখিত বিষয়বস্তু সহ একটি
package.jsonফাইল তৈরি করুন:index.jsনামে একটি নতুন ফাইল তৈরি করুন, তারপর নিম্নলিখিত কোডটি যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORTপরিবেশ ভেরিয়েবল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি তৈরি হয়ে গেছে এবং কন্টেইনারাইজ করে Artifact Registry আপলোড করার জন্য প্রস্তুত।
পাইথন
helloworld-pythonনামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপর ডিরেক্টরিটি এতে পরিবর্তন করুন:mkdir helloworld-python
cd helloworld-python
app.pyনামে একটি নতুন ফাইল তৈরি করুন, তারপর নিম্নলিখিত কোডটি যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORTপরিবেশ ভেরিয়েবল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি তৈরি হয়ে গেছে এবং কন্টেইনারাইজ করে Artifact Registry আপলোড করার জন্য প্রস্তুত।
জাভা
জাভা SE 8 বা তার পরবর্তী JDK এবং CURL ইনস্টল করুন।
মনে রাখবেন যে পরবর্তী ধাপে নতুন ওয়েব প্রকল্প তৈরি করার জন্য আমাদের এটি করতে হবে। ডকারফাইল, যা পরে বর্ণিত হয়েছে, সমস্ত নির্ভরতা কন্টেইনারে লোড করবে।
কনসোল থেকে, cURL ব্যবহার করে একটি নতুন খালি ওয়েব প্রজেক্ট তৈরি করুন এবং তারপর কমান্ডগুলি আনজিপ করুন:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zipunzip helloworld.zip
এটি একটি স্প্রিংবুট প্রকল্প তৈরি করে।
src/main/java/com/example/helloworld/HelloworldApplication.javaতেSpringBootApplicationক্লাস আপডেট করুন,/ম্যাপিং পরিচালনা করার জন্য একটি@RestControllerযোগ করুন এবংTARGETএনভায়রনমেন্ট ভেরিয়েবল প্রদানের জন্য একটি@Valueফিল্ড যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORTপরিবেশ ভেরিয়েবল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি তৈরি হয়ে গেছে এবং কন্টেইনারাইজ করে Artifact Registry আপলোড করার জন্য প্রস্তুত।
ধাপ ২ : একটি অ্যাপ কনটেইনারাইজ করুন এবং Artifact Registry আপলোড করুন
সোর্স ফাইলের মতো একই ডিরেক্টরিতে
Dockerfileনামে একটি নতুন ফাইল তৈরি করে নমুনা অ্যাপটিকে কন্টেইনারাইজ করুন। নিম্নলিখিত বিষয়বস্তুটি আপনার ফাইলে অনুলিপি করুন।যাও
নোড.জেএস
পাইথন
জাভা
আপনার ডকারফাইল ধারণকারী ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে Cloud Build ব্যবহার করে আপনার কন্টেইনার চিত্রটি তৈরি করুন:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
সফল হলে, আপনি ছবির নাম সম্বলিত একটি SUCCESS বার্তা দেখতে পাবেন।
(gcr.io/ PROJECT_ID /helloworld)।
কন্টেইনার ছবিটি এখন Artifact Registry সংরক্ষিত আছে এবং ইচ্ছা করলে পুনরায় ব্যবহার করা যেতে পারে।
মনে রাখবেন, Cloud Build পরিবর্তে, আপনি স্থানীয়ভাবে আপনার কন্টেইনার তৈরি করতে ডকারের স্থানীয়ভাবে ইনস্টল করা সংস্করণ ব্যবহার করতে পারেন।
ধাপ ৩ : Cloud Run কন্টেইনার ইমেজ স্থাপন করুন
সেরা পারফরম্যান্সের জন্য, নিম্নলিখিত অঞ্চলগুলি ব্যবহার করে আপনার Cloud Run পরিষেবা Hosting সাথে একত্রিত করুন:
-
us-west1 -
us-central1 -
us-east1 -
europe-west1 -
asia-east1
Hosting থেকে Cloud Run পুনর্লিখন নিম্নলিখিত অঞ্চলে সমর্থিত:
-
asia-east1 -
asia-east2 -
asia-northeast1 -
asia-northeast2 -
asia-northeast3 -
asia-south1 -
asia-south2 -
asia-southeast1 -
asia-southeast2 -
australia-southeast1 -
australia-southeast2 -
europe-central2 -
europe-north1 -
europe-southwest1 -
europe-west1 -
europe-west12 -
europe-west2 -
europe-west3 -
europe-west4 -
europe-west6 -
europe-west8 -
europe-west9 -
me-central1 -
me-west1 -
northamerica-northeast1 -
northamerica-northeast2 -
southamerica-east1 -
southamerica-west1 -
us-central1 -
us-east1 -
us-east4 -
us-east5 -
us-south1 -
us-west1 -
us-west2 -
us-west3 -
us-west4 -
us-west1 -
us-central1 -
us-east1 -
europe-west1 -
asia-east1
নিম্নলিখিত কমান্ড ব্যবহার করে স্থাপন করুন:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
যখন অনুরোধ করা হবে:
- একটি অঞ্চল নির্বাচন করুন (উদাহরণস্বরূপ
us-central1) - পরিষেবার নাম নিশ্চিত করুন (উদাহরণস্বরূপ,
helloworld) - অপ্রমাণিত আহ্বানগুলিকে অনুমতি দিতে
Yউত্তর দিন
- একটি অঞ্চল নির্বাচন করুন (উদাহরণস্বরূপ
স্থাপন সম্পূর্ণ হওয়ার জন্য কিছুক্ষণ অপেক্ষা করুন। সফল হলে, কমান্ড লাইন পরিষেবা URL প্রদর্শন করবে। উদাহরণস্বরূপ:
https://helloworld- RANDOM_HASH -us-central1.a.run.appএকটি ওয়েব ব্রাউজারে পরিষেবা URL খুলে আপনার স্থাপন করা কন্টেইনারটি দেখুন।
পরবর্তী ধাপে আপনাকে দেখানো হবে কিভাবে Firebase Hosting URL থেকে এই কন্টেইনারাইজড অ্যাপটি অ্যাক্সেস করবেন যাতে এটি আপনার Firebase-হোস্ট করা সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।
ধাপ ৪: আপনার কন্টেইনারাইজড অ্যাপে সরাসরি হোস্টিং অনুরোধ করুন
পুনর্লিখনের নিয়ম ব্যবহার করে, আপনি নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে একটি একক গন্তব্যে নির্দেশ করতে পারেন।
নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে আপনার Hosting সাইটের /helloworld পৃষ্ঠা থেকে সমস্ত অনুরোধগুলিকে আপনার helloworld কন্টেইনার ইনস্ট্যান্সের স্টার্টআপ এবং রানিং ট্রিগার করতে নির্দেশিত করবেন।
নিশ্চিত করো যে:
আপনার কাছে Firebase CLI এর সর্বশেষ সংস্করণ আছে।
আপনি Firebase Hosting শুরু করেছেন।
CLI ইনস্টল এবং Hosting শুরু করার বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, Hosting এর জন্য Get Started নির্দেশিকাটি দেখুন।
তোমার
firebase.jsonফাইলটি খুলো।hostingবিভাগের অধীনে নিম্নলিখিতrewriteকনফিগারেশন যোগ করুন:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1", // optional (if omitted, default is us-central1) "pinTag": true // optional (see note below) } } ] }
আপনার প্রোজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার সাইটে আপনার হোস্টিং কনফিগারেশন স্থাপন করুন:
firebase deploy --only hosting
এই বৈশিষ্ট্যটির সাহায্যে, আপনি নিশ্চিত করতে পারবেন যে আপনার সাইটের গতিশীল সামগ্রী তৈরির জন্য আপনার Cloud Run পরিষেবার সংশোধন আপনার স্ট্যাটিক Hosting রিসোর্স এবং Hosting কনফিগারেশনের সাথে সুসংগত রয়েছে। এছাড়াও, এই বৈশিষ্ট্যটি আপনাকে Hosting প্রিভিউ চ্যানেলগুলিতে Cloud Run আপনার পুনর্লিখনের পূর্বরূপ দেখতে দেয়।
যদি আপনি
hosting.rewritesকনফিগারেশনের একটিrunব্লকে"pinTag": trueযোগ করেন, তাহলে আপনার স্ট্যাটিক Hosting রিসোর্স এবং কনফিগারেশন স্থাপনের সময় Cloud Run পরিষেবার সাম্প্রতিকতম সংস্করণে পিন করা হবে। যদি আপনি আপনার সাইটের একটি সংস্করণ রোল ব্যাক করেন, তাহলে "পিন করা" Cloud Run পরিষেবার সংস্করণও রোল ব্যাক করা হবে।এই বৈশিষ্ট্যটি Cloud Run ট্যাগের উপর নির্ভর করে, যার প্রতিটি পরিষেবার জন্য 1000টি ট্যাগ এবং প্রতিটি অঞ্চলের জন্য 2000টি ট্যাগের সীমা রয়েছে। এর অর্থ হল শত শত স্থাপনার পরে, কোনও সাইটের প্রাচীনতম সংস্করণগুলি কাজ করা বন্ধ করে দিতে পারে।
আপনার কন্টেইনারটি এখন নিম্নলিখিত URL গুলির মাধ্যমে পৌঁছানো যাবে:
আপনার Firebase সাবডোমেন:
PROJECT_ID .web.app/এবংPROJECT_ID .firebaseapp.com/যেকোনো সংযুক্ত কাস্টম ডোমেন :
CUSTOM_DOMAIN /
পুনর্লিখনের নিয়ম সম্পর্কে আরও বিস্তারিত জানতে Hosting কনফিগারেশন পৃষ্ঠাটি দেখুন। আপনি বিভিন্ন Hosting কনফিগারেশনের জন্য প্রতিক্রিয়ার অগ্রাধিকার ক্রম সম্পর্কেও জানতে পারেন।
স্থানীয়ভাবে পরীক্ষা করুন
ডেভেলপমেন্টের সময়, আপনি স্থানীয়ভাবে আপনার কন্টেইনার ইমেজটি চালাতে এবং পরীক্ষা করতে পারেন। বিস্তারিত নির্দেশাবলীর জন্য, Cloud Run ডকুমেন্টেশন দেখুন।
পরবর্তী পদক্ষেপ
একটি গ্লোবাল CDN-তে আপনার গতিশীল কন্টেন্টের ক্যাশিং সেট আপ করুন ।
Firebase Admin SDK ব্যবহার করে অন্যান্য Firebase পরিষেবার সাথে ইন্টারঅ্যাক্ট করুন।
Cloud Run সম্পর্কে আরও জানুন, যার মধ্যে কন্টেইনার সেট আপ, পরিচালনা এবং কনফিগার করার জন্য বিস্তারিত "কীভাবে করবেন" নির্দেশিকা অন্তর্ভুক্ত রয়েছে।
Cloud Run মূল্য , কোটা এবং সীমা পর্যালোচনা করুন।