আপনার গতিশীল সামগ্রী তৈরি এবং পরিবেশন করতে বা মাইক্রোসার্ভিস হিসাবে 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 জন্য কেস এবং নমুনাগুলি ব্যবহার করুন, আমাদের সার্ভারলেস ওভারভিউটি দেখুন।
এই গাইড আপনাকে কীভাবে দেখায়:
- একটি সাধারণ হ্যালো ওয়ার্ল্ড অ্যাপ্লিকেশন লিখুন
- একটি অ্যাপ্লিকেশন ধারক এবং এটি Container Registry আপলোড করুন
- Cloud Run কন্টেইনার ইমেজ স্থাপন করুন
- আপনার কন্টেইনারাইজড অ্যাপে সরাসরি Hosting অনুরোধ
মনে রাখবেন যে গতিশীল সামগ্রী পরিবেশন করার কর্মক্ষমতা উন্নত করতে, আপনি ঐচ্ছিকভাবে আপনার ক্যাশে সেটিংস টিউন করতে পারেন৷
আপনি শুরু করার আগে
Cloud Run ব্যবহার করার আগে, আপনাকে একটি Cloud Billing অ্যাকাউন্ট সেট আপ করা, Cloud Run API সক্ষম করা এবং gcloud
কমান্ড লাইন টুল ইনস্টল করা সহ কিছু প্রাথমিক কাজ সম্পন্ন করতে হবে।
আপনার প্রকল্পের জন্য বিলিং সেট আপ করুন
Cloud Run offers free usage quota , but you still must have a Cloud Billing account associated with your Firebase project to use or try out Cloud Run .
API সক্ষম করুন এবং SDK ইনস্টল করুন
গুগল এপিআইএস কনসোলে Cloud Run এপিআই সক্ষম করুন:
গুগল এপিআইএস কনসোলে Cloud Run এপিআই পৃষ্ঠা খুলুন।
যখন অনুরোধ করা হয়, আপনার ফায়ারবেস প্রকল্পটি নির্বাচন করুন।
Cloud Run এপিআই পৃষ্ঠায় সক্ষম করুন ক্লিক করুন।
ক্লাউড এসডিকে ইনস্টল করুন এবং আরম্ভ করুন ।
সঠিক প্রকল্পের জন্য
gcloud
সরঞ্জামটি কনফিগার করা আছে কিনা তা পরীক্ষা করুন:gcloud config list
পদক্ষেপ 1 : নমুনা অ্যাপ্লিকেশন লিখুন
Note that Cloud Run supports many other languages in addition to the languages shown in the following sample.
যাও
Create a new directory named
helloworld-go
, then change directory into it:mkdir helloworld-go
cd helloworld-go
helloworld.go
নামে একটি নতুন ফাইল তৈরি করুন, তারপরে নিম্নলিখিত কোডটি যুক্ত করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপ্লিকেশনটি সমাপ্ত এবং Container Registry ধারকযুক্ত এবং আপলোড করার জন্য প্রস্তুত।
Node.js
helloworld-nodejs
নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপরে এটিতে ডিরেক্টরি পরিবর্তন করুন:mkdir helloworld-nodejs
cd helloworld-nodejs
নিম্নলিখিত বিষয়বস্তু সহ একটি
package.json
ফাইল তৈরি করুন:index.js
নামে একটি নতুন ফাইল তৈরি করুন, তারপরে নিম্নলিখিত কোডটি যুক্ত করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং Container Registry আপলোড করার জন্য প্রস্তুত।
পাইথন
helloworld-python
নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপরে এটিতে ডিরেক্টরি পরিবর্তন করুন:mkdir helloworld-python
cd helloworld-python
Create a new file named
app.py
, then add the following code:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং Container Registry আপলোড করার জন্য প্রস্তুত।
জাভা
Java SE 8 বা পরবর্তী JDK এবং CURL ইনস্টল করুন।
নোট করুন যে পরবর্তী পদক্ষেপে নতুন ওয়েব প্রকল্প তৈরি করতে আমাদের কেবল এটি করা দরকার। ডকারফিল, যা পরে বর্ণিত হয়েছে, সমস্ত নির্ভরতা ধারকটিতে লোড করবে।
কনসোল থেকে, কার্ল ব্যবহার করে একটি নতুন খালি ওয়েব প্রকল্প তৈরি করুন তারপরে আনজিপ কমান্ডগুলি:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
এটি একটি স্প্রিংবুট প্রকল্প তৈরি করে।
Update the
SpringBootApplication
class insrc/main/java/com/example/helloworld/HelloworldApplication.java
by adding a@RestController
to handle the/
mapping and also add a@Value
field to provide theTARGET
environment variable:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং Container Registry আপলোড করার জন্য প্রস্তুত।
ধাপ 2 : একটি অ্যাপ কন্টেইনারাইজ করুন এবং Container Registry আপলোড করুন
Containerize the sample app by creating a new file named
Dockerfile
in the same directory as the source files. আপনার ফাইলে নিম্নলিখিত সামগ্রীটি অনুলিপি করুন।যাও
Node.js
পাইথন
জাভা
Build your container image using Cloud Build by running the following command from the directory containing your Dockerfile:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
Upon success, you will see a SUCCESS message containing the image name
(gcr.io/ PROJECT_ID /helloworld
)।
ধারক চিত্রটি এখন Container Registry সংরক্ষণ করা হয়েছে এবং যদি ইচ্ছা হয় তবে পুনরায় ব্যবহার করা যেতে পারে।
মনে রাখবেন, Cloud Build এর পরিবর্তে, আপনি স্থানীয়ভাবে আপনার কন্টেইনার তৈরি করতে Docker-এর স্থানীয়ভাবে ইনস্টল করা সংস্করণ ব্যবহার করতে পারেন।
ধাপ 3 : Cloud Run কন্টেইনার ইমেজ স্থাপন করুন
নিম্নলিখিত কমান্ড ব্যবহার করে স্থাপন করুন:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
যখন অনুরোধ করা হয়:
- Select a region (for example
us-central1
) - পরিষেবার নাম নিশ্চিত করুন (উদাহরণস্বরূপ,
helloworld
) - অপ্রমাণিত আহ্বানের অনুমতি দিতে
Y
উত্তর দিন
- Select a region (for example
সেরা পারফরম্যান্সের জন্য, নিম্নলিখিত অঞ্চলগুলি ব্যবহার করে Hosting সাথে আপনার Cloud Run পরিষেবাটি সংযোজন করুন:
-
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
মোতায়েনের সম্পূর্ণ হওয়ার জন্য কয়েক মুহুর্ত অপেক্ষা করুন। সফল হলে, কমান্ড লাইন পরিষেবা URL প্রদর্শন করে। উদাহরণস্বরূপ:
https://helloworld- RANDOM_HASH -us-central1.a.run.appওয়েব ব্রাউজারে পরিষেবা ইউআরএল খোলার মাধ্যমে আপনার মোতায়েন ধারকটি দেখুন।
পরবর্তী পদক্ষেপটি আপনাকে Firebase Hosting ইউআরএল থেকে কীভাবে এই ধারক অ্যাপ্লিকেশনটি অ্যাক্সেস করতে পারে তার মাধ্যমে আপনাকে হাঁটতে পারে যাতে এটি আপনার ফায়ারবেস-হোস্টেড সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।
ধাপ 4: আপনার কন্টেইনারাইজড অ্যাপে সরাসরি হোস্টিং অনুরোধ
With rewrite rules , you can direct requests that match specific patterns to a single destination.
নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে আপনার Hosting সাইটে পৃষ্ঠা /helloworld
থেকে সমস্ত অনুরোধগুলি আপনার helloworld
ধারক উদাহরণটি শুরু এবং চলমান ট্রিগার করতে কীভাবে নির্দেশনা দেয়।
Make sure that:
আপনার কাছে Firebase CLI এর সর্বশেষ সংস্করণ রয়েছে।
আপনি Firebase Hosting শুরু করেছেন।
CLI ইনস্টল করা এবং Hosting শুরু করার বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, Hosting জন্য শুরু করুন গাইড দেখুন।
আপনার
firebase.json
ফাইলটি খুলুন।Add the following
rewrite
configuration under thehosting
section:"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 জন্য আপনার পুনর্লিখনের পূর্বরূপ দেখতে দেয়।
If you add
"pinTag": true
to arun
block of thehosting.rewrites
config, your static Hosting resources and configuration will be pinned to the most recent revision of the Cloud Run service, at the time of deploy. আপনি যদি আপনার সাইটের কোনও সংস্করণ ফিরিয়ে দেন তবে "পিনড" Cloud Run পরিষেবাটির সংশোধনও ফিরে এসেছে।এই বৈশিষ্ট্যটি Cloud Run ট্যাগগুলির উপর নির্ভর করে, যার প্রতি পরিষেবা প্রতি 1000 ট্যাগ এবং প্রতি অঞ্চলে 2000 ট্যাগ রয়েছে। এর অর্থ হ'ল শত শত মোতায়েনের পরে, কোনও সাইটের প্রাচীনতম সংস্করণগুলি কাজ করা বন্ধ করতে পারে।
আপনার ধারকটি এখন নিম্নলিখিত ইউআরএলগুলির মাধ্যমে পৌঁছনীয়:
আপনার ফায়ারবেস সাবডোমেনস:
PROJECT_ID .web.app/
এবংPROJECT_ID .firebaseapp.com/
কোনও সংযুক্ত কাস্টম ডোমেন :
CUSTOM_DOMAIN /
Visit the Hosting configuration page for more details about rewrite rules . You can also learn about the priority order of responses for various Hosting configurations.
স্থানীয়ভাবে পরীক্ষা করুন
During development, you can run and test your container image locally. বিস্তারিত নির্দেশাবলীর জন্য, Cloud Run ডকুমেন্টেশন দেখুন।
পরবর্তী পদক্ষেপ
একটি বিশ্বব্যাপী CDN-এ আপনার গতিশীল সামগ্রীর ক্যাশিং সেট আপ করুন ৷
ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করে অন্যান্য ফায়ারবেস পরিষেবাদির সাথে যোগাযোগ করুন।
Learn more about Cloud Run , including detailed how-to guides for setting up, managing, and configuring containers.
Cloud Run জন্য মূল্য এবং কোটা এবং সীমা পর্যালোচনা করুন।