একই কোডবেস থেকে একাধিক পরিবেশ স্থাপন করা সাধারণ, প্রতিটির কনফিগারেশন কিছুটা আলাদা। উদাহরণস্বরূপ, আপনি আপনার স্টেজিং পরিবেশে কম CPU এবং RAM বরাদ্দ করতে চাইতে পারেন, অথবা আপনি নিশ্চিত করতে পারেন যে আপনার উৎপাদন পরিবেশ কমপক্ষে 1টি ইন্সট্যান্স সক্রিয় এবং অনুরোধ পরিবেশনের জন্য প্রস্তুত। আপনি যে পরিবেশ এবং সংস্থানগুলি ব্যবহার করতে চান তার উপর নির্ভর করে আপনি বিভিন্ন পরিবেশের ভেরিয়েবল এবং গোপনীয়তা নির্দিষ্ট করতে চাইতে পারেন।
এই নির্দেশিকাটি বর্ণনা করে কিভাবে একটি প্রোডাকশন এবং স্টেজিং পরিবেশ, প্রতিটিকে একটি পৃথক ফায়ারবেস প্রকল্পে স্থাপন করতে হয়। একই নীতি অনুসরণ করে, আপনি অন্যান্য বিভিন্ন ধরণের পরিবেশে স্থাপন করতে পারেন। পরিবেশ সম্পর্কে আরও জানতে, পরিবেশের সংক্ষিপ্তসার এবং ফায়ারবেস প্রকল্প স্থাপনের জন্য সাধারণ সর্বোত্তম অনুশীলনগুলি দেখুন।
পূর্বশর্ত
- আপনার অ্যাপ্লিকেশন কোডটি ইতিমধ্যেই GitHub-এ সংরক্ষিত আছে।
- তুমি ইতিমধ্যেই তোমার প্রতিটি পরিবেশের জন্য একটি করে আলাদা প্রকল্প তৈরি করেছ—যেমন
my-production-firebase-project
এবংmy-staging-firebase-project
। তোমার প্রোডাকশন ফায়ারবেস প্রকল্পকে "production" পরিবেশের ধরণ দিয়ে ট্যাগ করতে ভুলো না। - প্রতিটি প্রকল্পে, আপনি একটি App Hosting ব্যাকএন্ড তৈরি করেছেন, যেখানে লাইভ শাখাটি আপনি যে GitHub শাখাটি স্থাপন করতে চান তাতে সেট করা আছে (যেমন
main
)। আরও তথ্যের জন্য App Hosting শুরু করুন" দেখুন।
ধাপ ০: apphosting.yaml-এ একটি ডিফল্ট কনফিগারেশন তৈরি করুন
App Hosting আপনার অ্যাপের রানটাইম সেটিংস (CPU, কনকারেন্সি, মেমোরি লিমিট ইত্যাদি) এবং পরিবেশগত ভেরিয়েবল পরিচালনা করার জন্য apphosting.yaml
নামক একটি কনফিগারেশন ফাইল সমর্থন করে। এটি ক্লাউড সিক্রেট ম্যানেজারের মাধ্যমে পরিচালিত গোপন তথ্যের রেফারেন্সও সমর্থন করে, যা সোর্স নিয়ন্ত্রণে চেক করা নিরাপদ করে। আরও তথ্যের জন্য, একটি ব্যাকএন্ড কনফিগার করুন দেখুন।
শুরু করার জন্য, আপনার অ্যাপের রুট ডিরেক্টরিতে একটি apphosting.yaml
ফাইল তৈরি করুন। এটি হল ফলব্যাক কনফিগারেশন ফাইল যা পরিবেশ-নির্দিষ্ট কনফিগারেশন ফাইল খুঁজে না পেলে ব্যবহার করা হয়। apphosting.yaml
এ সংরক্ষিত মানগুলি ডিফল্ট হওয়া উচিত যা সমস্ত পরিবেশের জন্য ব্যবহার করা নিরাপদ।
পরবর্তী বিভাগগুলিতে ব্যাখ্যা করা হয়েছে কিভাবে নির্দিষ্ট পরিবেশের জন্য apphosting.yaml
এ ডিফল্ট মানগুলিকে ওভাররাইড করতে হয়। এই উদাহরণ প্রবাহটি একটি স্টেজিং পরিবেশ তৈরি করে।
ধাপ ১: পরিবেশের নাম সেট করুন
প্রতিটি App Hosting ব্যাকএন্ডে একটি পরিবেশ নাম সেটিং থাকে। এই ক্ষেত্রটি আপনার ব্যাকএন্ডকে একটি পরিবেশ-নির্দিষ্ট কনফিগারেশন ফাইলে ম্যাপ করার জন্য ব্যবহৃত হয় এবং যেকোনো সময় এটি পরিবর্তন করা যেতে পারে। আপনি প্রতি ব্যাকএন্ডে শুধুমাত্র একটি পরিবেশ নাম সেট করতে পারেন।
আপনার ব্যাকএন্ডের পরিবেশের নাম সেট করতে,
- Firebase কনসোলে, আপনার স্টেজিং প্রজেক্ট নির্বাচন করুন (এই উদাহরণে, my-staging-firebase-project)।
- বাম দিকের নেভিগেশন থেকে App Hosting নির্বাচন করুন।
- আপনার নির্বাচিত ব্যাকএন্ডে ভিউ ড্যাশবোর্ডে ক্লিক করুন।
- সেটিংস ট্যাবে, পরিবেশ নির্বাচন করুন।
- Environment name এর অধীনে, আপনার পরিবেশের নাম লিখুন। আপনি আপনার পছন্দের পরিবেশের নাম দিতে পারেন। এই উদাহরণে, এটি হল staging ।
- সংরক্ষণ করুন ক্লিক করুন।
যখন আপনার ব্যাকএন্ডের জন্য একটি App Hosting রোলআউট ট্রিগার করা হয় (হয় গিট পুশে অথবা কনসোলের মাধ্যমে ম্যানুয়ালি), App Hosting apphosting. ENVIRONMENT_NAME .yaml
ফাইলটি apphosting.yaml
এ ফিরে যাওয়ার আগে।
ধাপ ২: আপনার পরিবেশ-নির্দিষ্ট apphosting.yaml
ফাইল তৈরি করুন
আপনার পরিবেশ-নির্দিষ্ট কনফিগারেশনের জন্য, পরিবেশ-নির্দিষ্ট ওভাররাইড নির্দিষ্ট করার জন্য apphosting. ENVIRONMENT_NAME .yaml
নামে একটি ফাইল তৈরি করুন। এই ফাইলটির ডিফল্ট apphosting.yaml এর মতো একই ফর্ম্যাট রয়েছে এবং এটি অবশ্যই আপনার অ্যাপের রুট ডিরেক্টরিতে apphosting.yaml
পাশাপাশি অবস্থিত হতে হবে।
বিল্ড টাইমে, App Hosting এই দুটি ফাইলকে একত্রিত করে, বেস apphosting.yaml
ফাইলের চেয়ে পরিবেশ-নির্দিষ্ট YAML ফাইলের মানগুলিকে অগ্রাধিকার দেওয়া হয়।
এই উদাহরণে, আপনি অ্যাপের রুট ডিরেক্টরিতে apphosting.staging.yaml
নামে একটি ফাইল তৈরি করবেন:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
ধরুন আপনার কাছে ইতিমধ্যেই একটি apphosting.yaml
আছে যা দেখতে এরকম:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
আপনার ক্লাউড বিল্ড লগে আপনি যে চূড়ান্ত মার্জড আউটপুটটি পরীক্ষা করতে পারবেন, তা দেখতে এরকম হবে:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
মনে রাখবেন যে কিছু runConfig
মান যেমন CPU ওভাররাইট করা হয়েছে, সেইসাথে যেকোনো ওভারল্যাপিং এনভায়রনমেন্ট ভেরিয়েবলও ওভাররাইট করা হয়েছে।
ধাপ ৩: আপনার কোডবেস স্থাপন করুন
আপনার পরিবেশ-নির্দিষ্ট apphosting. ENVIRONMENT_NAME .yaml
ফাইল, আপনার ফাইলটি GitHub-এ পুশ করুন:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
এই পরিবেশের নামের সাথে ট্যাগ করা যেকোনো ব্যাকএন্ড আপনার সংশ্লিষ্ট YAML ফাইলে নির্দিষ্ট করা নির্দিষ্ট ওভাররাইড মান ব্যবহার করবে এবং যখন কোনও মান পাওয়া যাবে না তখন apphosting.yaml
এ ফিরে যাবে। সংশ্লিষ্ট পরিবেশের নাম ছাড়া ব্যাকএন্ডের জন্য, আপনি apphosting.yaml ব্যবহার চালিয়ে যেতে পারেন।
পরবর্তী পদক্ষেপ
- আরও গভীরে যান: একটি ফায়ারবেস কোডল্যাব দেখুন যা একটি হোস্ট করা অ্যাপকে ফায়ারবেস প্রমাণীকরণ এবং গুগল এআই বৈশিষ্ট্যগুলির সাথে একীভূত করে: Next.js | Angular
- একটি কাস্টম ডোমেইন সংযুক্ত করুন ।
- আপনার ব্যাকএন্ড কনফিগার করুন ।
- রোলআউট, সাইট ব্যবহার এবং লগ পর্যবেক্ষণ করুন ।