আপনার গতিশীল সামগ্রী তৈরি এবং পরিবেশন করতে বা মাইক্রোসার্ভিস হিসাবে REST API তৈরি করতে Firebase হোস্টিংয়ের সাথে ক্লাউড রান করুন৷
ক্লাউড রান ব্যবহার করে, আপনি একটি কন্টেইনার ইমেজে প্যাকেজ করা একটি অ্যাপ্লিকেশন স্থাপন করতে পারেন। তারপর, ফায়ারবেস হোস্টিং ব্যবহার করে, আপনি আপনার কন্টেইনারাইজড অ্যাপ ট্রিগার করার জন্য HTTPS অনুরোধগুলি পরিচালনা করতে পারেন।
- ক্লাউড রান বেশ কয়েকটি ভাষা সমর্থন করে (Go, Node.js, Python, এবং Java সহ), আপনাকে আপনার পছন্দের প্রোগ্রামিং ভাষা এবং ফ্রেমওয়ার্ক ব্যবহার করার নমনীয়তা প্রদান করে।
- ক্লাউড রান স্বয়ংক্রিয়ভাবে এবং অনুভূমিকভাবে প্রাপ্ত অনুরোধগুলি পরিচালনা করতে আপনার কন্টেইনার চিত্রকে স্কেল করে , তারপর চাহিদা কমে গেলে স্কেল করে।
- অনুরোধ পরিচালনার সময় আপনি শুধুমাত্র CPU, মেমরি এবং নেটওয়ার্কিংয়ের জন্য অর্থ প্রদান করেন ।
উদাহরণ স্বরূপ Firebase হোস্টিং এর সাথে একীভূত ক্লাউড রানের জন্য কেস এবং নমুনা ব্যবহার করুন, আমাদের সার্ভারহীন ওভারভিউ দেখুন।
এই নির্দেশিকা আপনাকে দেখায় কিভাবে:
- একটি সাধারণ হ্যালো ওয়ার্ল্ড অ্যাপ্লিকেশন লিখুন
- একটি অ্যাপ কন্টেইনারাইজ করুন এবং কনটেইনার রেজিস্ট্রিতে আপলোড করুন
- ক্লাউড রানে কন্টেইনার ইমেজ স্থাপন করুন
- আপনার কন্টেইনারাইজড অ্যাপে সরাসরি হোস্টিং অনুরোধ
মনে রাখবেন যে গতিশীল সামগ্রী পরিবেশন করার কর্মক্ষমতা উন্নত করতে, আপনি ঐচ্ছিকভাবে আপনার ক্যাশে সেটিংস টিউন করতে পারেন৷
তুমি শুরু করার আগে
ক্লাউড রান ব্যবহার করার আগে, আপনাকে একটি ক্লাউড বিলিং অ্যাকাউন্ট সেট আপ করা, ক্লাউড রান API সক্ষম করা এবং gcloud
কমান্ড লাইন টুল ইনস্টল করা সহ কিছু প্রাথমিক কাজ সম্পন্ন করতে হবে।
আপনার প্রকল্পের জন্য বিলিং সেট আপ করুন
ক্লাউড রান বিনামূল্যে ব্যবহারের কোটা অফার করে, কিন্তু ক্লাউড রান ব্যবহার বা চেষ্টা করার জন্য আপনার ফায়ারবেস প্রকল্পের সাথে যুক্ত একটি ক্লাউড বিলিং অ্যাকাউন্ট থাকতে হবে।
API সক্ষম করুন এবং SDK ইনস্টল করুন
Google APIs কনসোলে Cloud Run API সক্ষম করুন:
Google APIs কনসোলে Cloud Run API পৃষ্ঠাটি খুলুন।
অনুরোধ করা হলে, আপনার Firebase প্রকল্প নির্বাচন করুন।
Cloud Run API পৃষ্ঠায় Enable এ ক্লিক করুন।
ক্লাউড SDK ইনস্টল করুন এবং আরম্ভ করুন ।
সঠিক প্রকল্পের জন্য
gcloud
টুল কনফিগার করা হয়েছে কিনা পরীক্ষা করুন:gcloud config list
ধাপ 1 : নমুনা আবেদন লিখুন
উল্লেখ্য যে ক্লাউড রান নিম্নলিখিত নমুনায় দেখানো ভাষা ছাড়াও অন্যান্য অনেক ভাষা সমর্থন করে।
যাওয়া
helloworld-go
নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপরে এটিতে ডিরেক্টরি পরিবর্তন করুন:mkdir helloworld-go
cd helloworld-go
helloworld.go
নামে একটি নতুন ফাইল তৈরি করুন, তারপর নিম্নলিখিত কোড যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং কনটেইনার রেজিস্ট্রিতে আপলোড করার জন্য প্রস্তুত।
Node.js
helloworld-nodejs
নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপরে এটিতে ডিরেক্টরি পরিবর্তন করুন:mkdir helloworld-nodejs
cd helloworld-nodejs
নিম্নলিখিত বিষয়বস্তু সহ একটি
package.json
ফাইল তৈরি করুন:index.js
নামে একটি নতুন ফাইল তৈরি করুন, তারপর নিম্নলিখিত কোড যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং কনটেইনার রেজিস্ট্রিতে আপলোড করার জন্য প্রস্তুত।
পাইথন
helloworld-python
নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপরে এটিতে ডিরেক্টরি পরিবর্তন করুন:mkdir helloworld-python
cd helloworld-python
app.py
নামে একটি নতুন ফাইল তৈরি করুন, তারপরে নিম্নলিখিত কোড যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং কনটেইনার রেজিস্ট্রিতে আপলোড করার জন্য প্রস্তুত।
জাভা
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
এটি একটি স্প্রিংবুট প্রকল্প তৈরি করে।
src/main/java/com/example/helloworld/HelloworldApplication.java
তেSpringBootApplication
ক্লাস আপডেট করুন একটি@RestController
যোগ করে/
ম্যাপিং পরিচালনা করতে এবং এছাড়াওTARGET
এনভায়রনমেন্ট ভেরিয়েবল প্রদান করতে একটি@Value
ক্ষেত্র যোগ করুন:এই কোডটি একটি মৌলিক ওয়েব সার্ভার তৈরি করে যা
PORT
পরিবেশ পরিবর্তনশীল দ্বারা সংজ্ঞায়িত পোর্টে শোনে।
আপনার অ্যাপটি শেষ হয়েছে এবং কনটেইনারাইজড এবং কনটেইনার রেজিস্ট্রিতে আপলোড করার জন্য প্রস্তুত।
ধাপ 2 : একটি অ্যাপ কন্টেইনারাইজ করুন এবং কনটেইনার রেজিস্ট্রিতে আপলোড করুন
সোর্স ফাইলগুলির মতো একই ডিরেক্টরিতে
Dockerfile
নামে একটি নতুন ফাইল তৈরি করে নমুনা অ্যাপটিকে ধারণ করুন৷ আপনার ফাইলে নিম্নলিখিত বিষয়বস্তু অনুলিপি করুন.যাওয়া
Node.js
পাইথন
জাভা
আপনার ডকারফাইল ধারণকারী ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে ক্লাউড বিল্ড ব্যবহার করে আপনার কন্টেইনার ইমেজ তৈরি করুন:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
সাফল্যের পরে, আপনি ছবির নাম সহ একটি সফল বার্তা দেখতে পাবেন
(gcr.io/ PROJECT_ID /helloworld
)।
কন্টেইনার ইমেজ এখন কনটেইনার রেজিস্ট্রিতে সংরক্ষণ করা হয়েছে এবং ইচ্ছা হলে পুনরায় ব্যবহার করা যেতে পারে।
মনে রাখবেন, ক্লাউড বিল্ডের পরিবর্তে, আপনি স্থানীয়ভাবে আপনার কন্টেইনার তৈরি করতে ডকারের স্থানীয়ভাবে ইনস্টল করা সংস্করণ ব্যবহার করতে পারেন।
ধাপ 3 : ক্লাউড রানে কন্টেইনার ইমেজ স্থাপন করুন
নিম্নলিখিত কমান্ড ব্যবহার করে স্থাপন করুন:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
অনুরোধ করা হলে:
- একটি অঞ্চল নির্বাচন করুন (উদাহরণস্বরূপ
us-central1
) - পরিষেবার নাম নিশ্চিত করুন (উদাহরণস্বরূপ,
helloworld
) - অপ্রমাণিত আহ্বানের অনুমতি দিতে
Y
উত্তর দিন
- একটি অঞ্চল নির্বাচন করুন (উদাহরণস্বরূপ
সেরা পারফরম্যান্সের জন্য, নিম্নলিখিত অঞ্চলগুলি ব্যবহার করে হোস্টিংয়ের সাথে আপনার ক্লাউড রান পরিষেবাটি সংযোজন করুন:
-
us-west1
-
us-central1
-
us-east1
-
europe-west1
-
asia-east1
হোস্টিং থেকে ক্লাউড রানে পুনর্লিখন নিম্নলিখিত অঞ্চলে সমর্থিত:
-
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একটি ওয়েব ব্রাউজারে পরিষেবা URL খুলে আপনার নিয়োজিত কন্টেইনারে যান৷
পরবর্তী ধাপে আপনাকে Firebase হোস্টিং ইউআরএল থেকে এই কন্টেইনারাইজড অ্যাপটি কীভাবে অ্যাক্সেস করতে হয় তা নিয়ে নিয়ে যায় যাতে এটি আপনার Firebase-হোস্ট করা সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।
ধাপ 4: আপনার কন্টেইনারাইজড অ্যাপে সরাসরি হোস্টিং অনুরোধ
পুনর্লিখনের নিয়মের সাহায্যে, আপনি একটি একক গন্তব্যে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে সরাসরি করতে পারেন।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে আপনার হোস্টিং সাইটের পৃষ্ঠা /helloworld
থেকে সমস্ত অনুরোধগুলিকে আপনার helloworld
কন্টেইনার ইনস্ট্যান্সের স্টার্টআপ এবং চলমান ট্রিগার করতে হয়।
নিশ্চিত করো যে:
আপনার কাছে Firebase CLI এর সর্বশেষ সংস্করণ রয়েছে।
আপনি ফায়ারবেস হোস্টিং শুরু করেছেন।
CLI ইনস্টল করা এবং হোস্টিং শুরু করার বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, হোস্টিংয়ের জন্য শুরু করুন নির্দেশিকা দেখুন।
আপনার
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
এই বৈশিষ্ট্যটির সাহায্যে, আপনি নিশ্চিত করতে পারেন যে আপনার সাইটের গতিশীল সামগ্রী তৈরি করার জন্য আপনার ক্লাউড রান পরিষেবার সংশোধন আপনার স্ট্যাটিক হোস্টিং সংস্থান এবং হোস্টিং কনফিগারেশনের সাথে সিঙ্কে রাখা হয়েছে৷ এছাড়াও, এই বৈশিষ্ট্যটি আপনাকে হোস্টিং প্রিভিউ চ্যানেলে ক্লাউড রানে আপনার পুনর্লিখনের পূর্বরূপ দেখতে দেয়।
আপনি যদি
"pingTag": true
hosting.rewrites
কনফিগারেশনের একটিrun
ব্লকে সত্য, আপনার স্ট্যাটিক হোস্টিং সংস্থান এবং কনফিগারেশন ক্লাউড রান পরিষেবার সবচেয়ে সাম্প্রতিক সংশোধনে, স্থাপনের সময় পিন করা হবে। আপনি যদি আপনার সাইটের একটি সংস্করণ রোল ব্যাক করেন, তাহলে "পিন করা" ক্লাউড রান পরিষেবার সংশোধনও ফিরিয়ে আনা হবে৷এই বৈশিষ্ট্যটি ক্লাউড রান ট্যাগের উপর নির্ভর করে, যার সীমা প্রতি পরিষেবা প্রতি 1000 ট্যাগ এবং প্রতি অঞ্চলে 2000 ট্যাগ রয়েছে৷ এর মানে হল শত শত স্থাপনের পরে, একটি সাইটের প্রাচীনতম সংস্করণগুলি কাজ করা বন্ধ করে দিতে পারে।
আপনার ধারকটি এখন নিম্নলিখিত URLগুলির মাধ্যমে পৌঁছানো যায়:
আপনার ফায়ারবেস সাবডোমেন:
PROJECT_ID .web.app/
এবংPROJECT_ID .firebaseapp.com/
যেকোনো সংযুক্ত কাস্টম ডোমেন :
CUSTOM_DOMAIN /
পুনর্লিখনের নিয়ম সম্পর্কে আরও বিস্তারিত জানার জন্য হোস্টিং কনফিগারেশন পৃষ্ঠায় যান। আপনি বিভিন্ন হোস্টিং কনফিগারেশনের প্রতিক্রিয়াগুলির অগ্রাধিকার ক্রম সম্পর্কেও শিখতে পারেন।
স্থানীয়ভাবে পরীক্ষা করুন
বিকাশের সময়, আপনি স্থানীয়ভাবে আপনার ধারক চিত্রটি চালাতে এবং পরীক্ষা করতে পারেন। বিস্তারিত নির্দেশাবলীর জন্য, ক্লাউড রান ডকুমেন্টেশন দেখুন।
পরবর্তী পদক্ষেপ
একটি বিশ্বব্যাপী CDN-এ আপনার গতিশীল সামগ্রীর ক্যাশিং সেট আপ করুন ৷
Firebase অ্যাডমিন SDK ব্যবহার করে অন্যান্য Firebase পরিষেবার সাথে যোগাযোগ করুন।
ক্লাউড রান সম্পর্কে আরও জানুন, কন্টেইনার সেট আপ, পরিচালনা এবং কনফিগার করার জন্য বিস্তারিত কীভাবে-প্রদর্শক সহ।
ক্লাউড রানের জন্য মূল্য এবং কোটা এবং সীমা পর্যালোচনা করুন।