App Hosting সহজে ব্যবহার এবং কম রক্ষণাবেক্ষণের কথা মাথায় রেখে ডিজাইন করা হয়েছে, যার ডিফল্ট সেটিংস বেশিরভাগ ব্যবহারের ক্ষেত্রের জন্য অপ্টিমাইজ করা। একই সাথে, App Hosting আপনার নির্দিষ্ট প্রয়োজন অনুযায়ী ব্যাকএন্ড পরিচালনা ও কনফিগার করার জন্য বিভিন্ন টুলস সরবরাহ করে। এই নির্দেশিকায় সেই টুলস এবং পদ্ধতিগুলো বর্ণনা করা হয়েছে।
এনভায়রনমেন্ট ভেরিয়েবল সেট এবং আপডেট করুন
কখনও কখনও আপনার বিল্ড প্রক্রিয়ার জন্য অতিরিক্ত কনফিগারেশনের প্রয়োজন হতে পারে। App Hosting আপনার প্রোজেক্টের জন্য এই ধরনের ডেটা সংরক্ষণ ও পুনরুদ্ধার করার জন্য এনভায়রনমেন্ট কনফিগারেশনের সুবিধা প্রদান করে, যা Firebase কনসোলের মাধ্যমে এবং বিকল্পভাবে apphosting.yaml ফাইলে করা যায়।
কনসোলে এনভায়রনমেন্ট ভেরিয়েবল সেট করা হলো কাজ শুরু করার সবচেয়ে দ্রুততম উপায়। যদি আপনার গোপন প্যারামিটার সংরক্ষণ ও অ্যাক্সেস করার প্রয়োজন হয়, এমন ভেরিয়েবল সেট করতে চান যা শুধুমাত্র বিল্ড বা রান টাইমে উপলব্ধ, অথবা একাধিক এনভায়রনমেন্টের মধ্যে ভেরিয়েবল শেয়ার করতে চান, তাহলে apphosting.yaml ব্যবহার করুন। কনসোল এবং apphosting.<env>.yaml উভয় মাধ্যমেই আপনি বিভিন্ন এনভায়রনমেন্টের জন্য ভিন্ন ভিন্ন মান সেট করতে পারেন।
ফায়ারবেস কনসোল

apphosting.yaml
env:
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
ভেরিয়েবল আপডেট করুন
আপনি Firebase কনসোলের সেটিংস ট্যাবে একটি ব্যাকএন্ডের জন্য এনভায়রনমেন্ট ভেরিয়েবল যোগ এবং সম্পাদনা করতে পারেন। ভিউ ব্যাকএন্ড >> সেটিংস >> এনভায়রনমেন্ট- এ যান এবং তারপর এনভায়রনমেন্ট ভেরিয়েবল যোগ, সম্পাদনা বা মুছে ফেলুন।
apphosting.yaml, ফাইলটি ম্যানুয়ালি তৈরি ও সম্পাদনা করুন ।
আপনার পরিবর্তনগুলি কেবল আপনার পরবর্তী রোলআউটের সাথেই কার্যকর হবে এবং বর্তমানটিকে প্রভাবিত করবে না। হয় সেভ করে একটি নতুন রোলআউট তৈরি করুন, অথবা আপনার ভেরিয়েবলগুলি সেভ করে পরে ডেপ্লয় করুন।
পরিবর্তনশীল প্রাপ্যতা সেট করুন
ফায়ারবেস কনসোলে তৈরি করা এনভায়রনমেন্ট ভেরিয়েবলগুলো বিল্ড টাইম এবং রান টাইম উভয় সময়েই উপলব্ধ থাকে। apphosting.yaml এ সংজ্ঞায়িত ভেরিয়েবলগুলোর ক্ষেত্রেও এটিই ডিফল্ট অবস্থা, যদি না আপনি availability প্রপার্টি ব্যবহার করে এর পরিধি সংকুচিত করে থাকেন। apphosting.yaml এ (কিন্তু কনসোলে নয়), আপনি একটি এনভায়রনমেন্ট ভেরিয়েবলকে শুধুমাত্র বিল্ড এনভায়রনমেন্টের জন্য অথবা শুধুমাত্র রানটাইম এনভায়রনমেন্টের জন্য উপলব্ধ রাখতে পারেন।
env:
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- BUILD
- RUNTIME
Next.js অ্যাপের ক্ষেত্রেও, ব্রাউজারে কোনো ভেরিয়েবলকে অ্যাক্সেসযোগ্য করার জন্য আপনি আপনার dotenv ফাইলের মতোই NEXT_PUBLIC_ প্রিফিক্সটি ব্যবহার করতে পারেন।
env:
- variable: NEXT_PUBLIC_STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- BUILD
- RUNTIME
Next.js-এর জন্য ডটএনভ ফাইল
Next.js অ্যাপের ক্ষেত্রে, এনভায়রনমেন্ট ভেরিয়েবল সম্বলিত dotenv ফাইলগুলো অ্যাপ হোস্টিংয়ের সাথে কাজ করে।
ব্যাকএন্ড তৈরি বা আপডেট করার সময়, আপনি আপনার dotenv ফাইলের সম্পূর্ণ বিষয়বস্তু কপি করে Environment Variables Settings- এর "Add new" ফর্মের প্রথম "Key" ফিল্ডে পেস্ট করার মাধ্যমে এনভায়রনমেন্ট ভেরিয়েবলগুলো Firebase কনসোলে স্থানান্তর করতে পারেন।
এইভাবে কপি করা সমস্ত এনভায়রনমেন্ট ভেরিয়েবল ফর্মের মধ্যে সুন্দরভাবে সাজানো থাকবে এবং প্রতিটি আলাদাভাবে প্রবেশ করানোর প্রয়োজন হবে না, যদি ইনপুটটির ফরম্যাট নিম্নলিখিতের মতো হয়:
KEY1=value1
KEY2=value2
KEY3=value3
যেকোনো ফ্রেমওয়ার্কের সাথে জটিল বা সূক্ষ্ম এনভায়রনমেন্ট ভেরিয়েবল নিয়ন্ত্রণের জন্য আমরা apphosting.yaml ব্যবহার করার পরামর্শ দিই।
স্বয়ংক্রিয়ভাবে পূরণ করা পরিবেশ ভেরিয়েবল
কিছু এনভায়রনমেন্ট ভেরিয়েবল আছে যা App Hosting দ্বারা স্বয়ংক্রিয়ভাবে পূরণ করা হয়। এর মধ্যে রয়েছে Google Cloud দ্বারা পূরণ করা ভেরিয়েবলগুলো , এবং সেইসাথে ফায়ারবেস-এর নিজস্ব এনভায়রনমেন্ট ভেরিয়েবল, যা সেটআপের সময় ব্যাকএন্ডে appId সেট করা হলে যুক্ত হয়।
FIREBASE_CONFIG: (বিল্ড ও রানটাইম এনভায়রনমেন্টে উপলব্ধ) ফায়ারবেস প্রোজেক্টের নিম্নলিখিত কনফিগারেশন তথ্য প্রদান করে:{ "databaseURL": 'https://DATABASE_NAME.firebaseio.com', "storageBucket": '', "projectId": 'PROJECT_ID' } firebasestorage.appPROJECT_ID.আপনি কোনো আর্গুমেন্ট ছাড়া Firebase Admin SDK চালু করলে এই কনফিগারেশনটি স্বয়ংক্রিয়ভাবে প্রয়োগ হয়।
FIREBASE_WEBAPP_CONFIG: (শুধুমাত্র বিল্ড এনভায়রনমেন্টে উপলব্ধ) নিম্নলিখিত ফায়ারবেস প্রোজেক্ট কনফিগারেশন তথ্য প্রদান করে:{ "apiKey": 'API_KEY', "appId": 'APP_ID', "authDomain": 'AUTH_DOMAIN.firebaseapp.com', "databaseURL": 'https://DATABASE_NAME.firebaseio.com', "messagingSenderId": 'PROJECT_NUMBER', "projectId": 'PROJECT_ID', "storageBucket": '', } firebasestorage.appPROJECT_ID.ফায়ারবেস জেএস এসডিকে বিল্ডের সময় একটি পোস্টইনস্টল স্ক্রিপ্টে স্বয়ংক্রিয়ভাবে এই
FIREBASE_WEBAPP_CONFIGএনভায়রনমেন্ট ভেরিয়েবলটি পরীক্ষা করে, যার ফলে আপনি কোনো আর্গুমেন্ট ছাড়াই ক্লায়েন্ট এসডিকে ইনিশিয়ালাইজ করতে পারেন।
এই এনভায়রনমেন্ট ভেরিয়েবলগুলো ব্যবহার করে কীভাবে SDK-গুলো ইনিশিয়ালাইজ করা যায়, সে সম্পর্কে আরও বিস্তারিত জানতে “Automatically initialize Firebase Admin SDK and web SDKs” দেখুন।
মনে রাখবেন যে, আপনার প্রকৃত Firebase কনফিগারেশনের মানগুলো আপনার প্রোজেক্টে প্রোভিশন করা নির্দিষ্ট রিসোর্সগুলোর সাথে সামঞ্জস্যপূর্ণ হবে।
পরিবর্তনশীল শ্রেণিবিন্যাস
ফায়ারবেস অ্যাপ হোস্টিং আপনার ভেরিয়েবলগুলোকে তাদের উৎসের উপর ভিত্তি করে অগ্রাধিকারের ক্রমে প্রয়োগ করে। উদাহরণস্বরূপ, কনসোলে সেট করা মানগুলো সর্বদা apphosting.yaml এবং dotenv ফাইলে সেট করা মানগুলোকে ওভাররাইড করে বা সেগুলোর উপর অগ্রাধিকার পায়।
অগ্রাধিকারের সম্পূর্ণ ক্রমটি হলো:
- ফায়ারবেস কনসোল → কনসোলে সেট করা ভেরিয়েবল
-
apphosting.<env>.yaml→ একটি এনভায়রনমেন্ট-নির্দিষ্ট yaml ফাইলে উল্লেখিত ভেরিয়েবল, যেমনapphosting.staging.yaml( একাধিক এনভায়রনমেন্ট ডেপ্লয় করা দেখুন) -
apphosting.yaml→apphosting.yamlফাইলে নির্দিষ্ট করা ভেরিয়েবলসমূহ - ফায়ারবেস সিস্টেম → ফায়ারবেস দ্বারা সেট করা ভেরিয়েবল, যেগুলোতে
firebase_config jsonবাfirebase_webapp_configএর জন্য মান থাকে, সেইসাথে এনভায়রনমেন্ট ভেরিয়েবল যা SSR অ্যাপের জন্য হোস্টনেম এবং পোর্ট সেট করে (bundle.yamlএ অ্যাপ হোস্টিং অ্যাডাপ্টার দ্বারা সেট করা)।
সংরক্ষিত নাম এবং সীমাবদ্ধতা
ক্লাউড রান কন্টেইনার রানটাইম কন্ট্রাক্টে সংজ্ঞায়িত এনভায়রনমেন্ট ভেরিয়েবলগুলো সংরক্ষিত এবং সেট করা যায় না।
স্বয়ংক্রিয়ভাবে সেট হওয়া ভেরিয়েবলগুলো ছাড়া, পরিবেশ থেকে প্রাপ্ত অন্যান্য এনভায়রনমেন্ট ভেরিয়েবলগুলো ভবিষ্যতের রানটাইম সংস্করণগুলোতে পরিবর্তিত হতে পারে। সর্বোত্তম অনুশীলন হিসেবে, আমরা সুপারিশ করি যে আপনি স্পষ্টভাবে সেট করেননি এমন কোনো এনভায়রনমেন্ট ভেরিয়েবলের উপর নির্ভর করবেন না বা তা পরিবর্তন করবেন না, এবং দ্বন্দ্ব এড়াতে যেকোনো এনভায়রনমেন্ট ভেরিয়েবলের আগে একটি অনন্য কী (key) যুক্ত করার কথা বিবেচনা করুন।
কিছু এনভায়রনমেন্ট ভেরিয়েবল কী শুধুমাত্র অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত। আপনার কনফিগারেশন ফাইলে এই কীগুলোর কোনোটিই ব্যবহার করবেন না:
- খালি স্ট্রিং ("")
- যে কীগুলিতে "=" থাকে
-
X_FIREBASE_,X_GOOGLE_, বাCLOUD_RUN_দিয়ে শুরু হওয়া কী-গুলো -
PORT -
K_SERVICE -
K_REVISION -
K_CONFIGURATION - ডুপ্লিকেট কী
apphosting.yaml তৈরি এবং সম্পাদনা করুন
সিক্রেট বা কনকারেন্সি, সিপিইউ, এবং মেমরি লিমিটের মতো রানটাইম সেটিংসের মতো অ্যাডভান্সড কনফিগারেশনের জন্য, আপনাকে আপনার অ্যাপের রুট ডিরেক্টরিতে apphosting.yaml ফাইলটি তৈরি এবং সম্পাদনা করতে হবে। এই ফাইলটি ক্লাউড সিক্রেট ম্যানেজারের মাধ্যমে পরিচালিত সিক্রেটগুলোর রেফারেন্স সমর্থন করে, ফলে সোর্স কন্ট্রোলে এটি চেক ইন করা নিরাপদ।
apphosting.yaml তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান:
firebase init apphosting
এটি উদাহরণ (মন্তব্যসহ) কনফিগারেশন সহ একটি প্রাথমিক apphosting.yaml ফাইল তৈরি করে। সম্পাদনার পর, একটি সাধারণ apphosting.yaml ফাইল নিচের মতো দেখতে হতে পারে, যেখানে ব্যাকএন্ডের Cloud Run সার্ভিসের সেটিংস, কিছু এনভায়রনমেন্ট ভেরিয়েবল এবং ক্লাউড সিক্রেট ম্যানেজার দ্বারা পরিচালিত সিক্রেটগুলোর কিছু রেফারেন্স থাকবে:
# Settings for Cloud Run
runConfig:
minInstances: 2
maxInstances: 100
concurrency: 100
cpu: 2
memoryMiB: 1024
# Environment variables and secrets
env:
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- BUILD
- RUNTIME
- variable: API_KEY
secret: myApiKeySecret
# Same as API_KEY above but with a pinned version.
- variable: PINNED_API_KEY
secret: myApiKeySecret@5
# Same as API_KEY above but with the long form secret reference as defined by Cloud Secret Manager.
- variable: VERBOSE_API_KEY
secret: projects/test-project/secrets/secretID
# Same as API_KEY above but with the long form secret reference with pinned version.
- variable: PINNED_VERBOSE_API_KEY
secret: projects/test-project/secrets/secretID/versions/5
এই নির্দেশিকার বাকি অংশে এই উদাহরণ সেটিংসগুলো সম্পর্কে আরও তথ্য ও প্রেক্ষাপট প্রদান করা হয়েছে।
Cloud Run পরিষেবা সেটিংস কনফিগার করুন
apphosting.yaml সেটিংসের মাধ্যমে, আপনি আপনার Cloud Run পরিষেবাটি কীভাবে প্রোভিশন করা হবে তা কনফিগার করতে পারেন। Cloud Run পরিষেবার জন্য উপলব্ধ সেটিংস runConfig অবজেক্টে দেওয়া থাকে:
-
cpu– প্রতিটি সার্ভিং ইনস্ট্যান্সের জন্য ব্যবহৃত সিপিইউ-এর সংখ্যা (ডিফল্ট ০)। -
memoryMiB– প্রতিটি সার্ভিং ইনস্ট্যান্সের জন্য বরাদ্দকৃত মেমরির পরিমাণ (MiB-এ) (ডিফল্ট ৫১২) -
maxInstances– একবারে সর্বাধিক যতগুলো কন্টেইনার চালানো যাবে (ডিফল্ট ১০০ এবং কোটা দ্বারা নিয়ন্ত্রিত) -
minInstances– সর্বদা চালু রাখার জন্য কন্টেইনারের সংখ্যা (ডিফল্ট ০)। -
concurrency– প্রতিটি সার্ভিং ইনস্ট্যান্স সর্বোচ্চ যতগুলো অনুরোধ গ্রহণ করতে পারে (ডিফল্ট ৮০)।
cpu এবং memoryMiB এর মধ্যে গুরুত্বপূর্ণ সম্পর্কটি লক্ষ্য করুন; মেমরি ১২৮ থেকে ৩২৭৬৮-এর মধ্যে যেকোনো পূর্ণসংখ্যায় সেট করা যেতে পারে, কিন্তু মেমরির সীমা বাড়াতে গেলে সিপিইউ-এর সীমাও বাড়ানোর প্রয়োজন হতে পারে:
- ৪ জিবির বেশি জায়গার জন্য কমপক্ষে ২টি সিপিইউ প্রয়োজন।
- ৮ জিবির বেশি জায়গার জন্য কমপক্ষে ৪টি সিপিইউ প্রয়োজন।
- ১৬ জিবির বেশি জায়গার জন্য কমপক্ষে ৬টি সিপিইউ প্রয়োজন।
- ২৪ জিবির বেশি জায়গার জন্য কমপক্ষে ৮টি সিপিইউ প্রয়োজন।
একইভাবে, cpu -এর মান কনকারেন্সি সেটিংসকে প্রভাবিত করে। যদি আপনি সিপিইউ-এর মান ১-এর কম সেট করেন, তবে আপনাকে অবশ্যই কনকারেন্সি ১-এ সেট করতে হবে এবং সিপিইউ শুধুমাত্র রিকোয়েস্ট প্রসেসিংয়ের সময় বরাদ্দ করা হবে।
বিল্ড এবং রান স্ক্রিপ্ট ওভাররাইড করুন
App Hosting শনাক্তকৃত ফ্রেমওয়ার্কের উপর ভিত্তি করে আপনার অ্যাপের বিল্ড এবং স্টার্ট কমান্ড অনুমান করে। আপনি যদি একটি কাস্টম বিল্ড বা স্টার্ট কমান্ড ব্যবহার করতে চান, তাহলে apphosting.yaml ফাইলে App Hosting -এর ডিফল্ট সেটিংস পরিবর্তন করে দিতে পারেন।
scripts:
buildCommand: next build --no-lint
runCommand: node dist/index.js
বিল্ড কমান্ড ওভাররাইড অন্য যেকোনো বিল্ড কমান্ডের চেয়ে অগ্রাধিকার পায় এবং আপনার অ্যাপকে ফ্রেমওয়ার্ক অ্যাডাপ্টারগুলো থেকে বাদ দেয় ও App Hosting দ্বারা প্রদত্ত যেকোনো ফ্রেমওয়ার্ক-নির্দিষ্ট অপটিমাইজেশন নিষ্ক্রিয় করে দেয়। এটি তখনই সবচেয়ে ভালোভাবে ব্যবহার করা যায় যখন আপনার অ্যাপের ফিচারগুলো অ্যাডাপ্টার দ্বারা ভালোভাবে সমর্থিত হয় না। আপনি যদি আপনার বিল্ড কমান্ড পরিবর্তন করতে চান কিন্তু তারপরও আমাদের দেওয়া অ্যাডাপ্টারগুলো ব্যবহার করতে চান, তাহলে App Hosting হোস্টিং ফ্রেমওয়ার্ক অ্যাডাপ্টার- এ বর্ণিত পদ্ধতি অনুযায়ী আপনার বিল্ড স্ক্রিপ্টটি package.json এ সেট করুন।
আপনার অ্যাপ শুরু করার জন্য যদি App Hosting থেকে অনুমান করা কমান্ডের চেয়ে ভিন্ন কোনো নির্দিষ্ট কমান্ড ব্যবহার করতে চান, তাহলে রান কমান্ড ওভাররাইড ব্যবহার করুন।
বিল্ড আউটপুট কনফিগার করুন
App Hosting ডিফল্টরূপে ফ্রেমওয়ার্কের নির্দেশ অনুযায়ী অব্যবহৃত আউটপুট ফাইলগুলো মুছে দিয়ে আপনার অ্যাপ ডেপ্লয়মেন্টকে অপ্টিমাইজ করে। আপনি যদি আপনার অ্যাপ ডেপ্লয়মেন্টের আকার আরও অপ্টিমাইজ করতে চান বা ডিফল্ট অপ্টিমাইজেশনগুলো উপেক্ষা করতে চান, তাহলে আপনি apphosting.yaml ফাইলে এটি ওভাররাইড করতে পারেন।
outputFiles:
serverApp:
include: [dist, server.js]
include প্যারামিটারটি অ্যাপ রুট ডিরেক্টরির সাপেক্ষে সেইসব ডিরেক্টরি এবং ফাইলের একটি তালিকা গ্রহণ করে, যা আপনার অ্যাপ ডেপ্লয় করার জন্য প্রয়োজনীয়। আপনি যদি নিশ্চিত করতে চান যে সমস্ত ফাইল রাখা হবে, তাহলে include-কে [.] সেট করুন এবং সমস্ত ফাইল ডেপ্লয় করা হবে।
গোপন প্যারামিটার সংরক্ষণ এবং অ্যাক্সেস করুন
এপিআই কী-এর মতো সংবেদনশীল তথ্য সিক্রেট হিসেবে সংরক্ষণ করা উচিত। সোর্স কন্ট্রোলে সংবেদনশীল তথ্য চেক ইন করা এড়াতে আপনি apphosting.yaml এ সিক্রেট রেফারেন্স করতে পারেন।
' secret টাইপের প্যারামিটারগুলো হলো এমন স্ট্রিং প্যারামিটার, যেগুলোর মান ক্লাউড সিক্রেট ম্যানেজার -এ সংরক্ষিত থাকে। সরাসরি মানটি গ্রহণ না করে, সিক্রেট প্যারামিটারগুলো ক্লাউড সিক্রেট ম্যানেজার-এ এর অস্তিত্ব যাচাই করে এবং রোলআউটের সময় মানগুলো লোড করে।
- variable: API_KEY
secret: myApiKeySecret
ক্লাউড সিক্রেট ম্যানেজারে থাকা সিক্রেটগুলোর একাধিক ভার্সন থাকতে পারে। ডিফল্টরূপে, আপনার লাইভ ব্যাকএন্ডের জন্য উপলব্ধ একটি সিক্রেট প্যারামিটারের মান, ব্যাকএন্ডটি বিল্ড করার সময় উপলব্ধ সিক্রেটটির সর্বশেষ ভার্সনে পিন করা থাকে। প্যারামিটারের ভার্সনিং এবং লাইফসাইকেল ম্যানেজমেন্টের জন্য আপনার কোনো প্রয়োজনীয়তা থাকলে, আপনি ক্লাউড সিক্রেট ম্যানেজারের মাধ্যমে নির্দিষ্ট ভার্সনে পিন করতে পারেন। উদাহরণস্বরূপ, ভার্সন ৫-এ পিন করতে:
- variable: PINNED_API_KEY
secret: myApiKeySecret@5
আপনি firebase apphosting:secrets:set CLI কমান্ডের মাধ্যমে সিক্রেট তৈরি করতে পারেন এবং আপনাকে প্রয়োজনীয় অনুমতি যোগ করার জন্য অনুরোধ করা হবে। এই প্রক্রিয়াটি আপনাকে apphosting.yaml ফাইলে স্বয়ংক্রিয়ভাবে সিক্রেট রেফারেন্স যোগ করার সুযোগ দেয়।
ক্লাউড সিক্রেট ম্যানেজারের সম্পূর্ণ কার্যকারিতা ব্যবহার করার জন্য, আপনি এর পরিবর্তে ক্লাউড সিক্রেট ম্যানেজার কনসোল ব্যবহার করতে পারেন। যদি আপনি এটি করেন, তাহলে আপনাকে firebase apphosting:secrets:grantaccess CLI কমান্ডের মাধ্যমে আপনার App Hosting ব্যাকএন্ডকে অনুমতি দিতে হবে।
VPC অ্যাক্সেস কনফিগার করুন
আপনার App Hosting ব্যাকএন্ড একটি ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্কের সাথে সংযুক্ত হতে পারে। আরও তথ্য এবং একটি উদাহরণের জন্য, Firebase App Hosting to a VPC network” দেখুন।
অ্যাক্সেস কনফিগার করতে আপনার apphosting.yaml ফাইলে vpcAccess ম্যাপিং ব্যবহার করুন। একটি সম্পূর্ণ নেটওয়ার্ক/কানেক্টরের নাম অথবা একটি আইডি ব্যবহার করুন। আইডি ব্যবহার করলে ভিন্ন কানেক্টর/নেটওয়ার্কযুক্ত স্টেজিং এবং প্রোডাকশন এনভায়রনমেন্টের মধ্যে পোর্টেবিলিটি বা স্থানান্তরযোগ্যতা সম্ভব হয়।
সরাসরি ভিপিসি বহির্গমন কনফিগারেশন ( apphosting.yaml ):
runConfig:
vpcAccess:
egress: PRIVATE_RANGES_ONLY # Default value
networkInterfaces:
# Specify at least one of network and/or subnetwork
- network: my-network-id
subnetwork: my-subnetwork-id
সার্ভারলেস কানেক্টর কনফিগারেশন ( apphosting.yaml ):
runConfig:
vpcAccess:
egress: ALL_TRAFFIC
connector: connector-id
ব্যাকএন্ড পরিচালনা করুন
App Hosting ব্যাকএন্ডগুলির প্রাথমিক ব্যবস্থাপনার জন্য কমান্ডগুলি Firebase সিএলআই এবং Firebase কনসোলে দেওয়া আছে। এই বিভাগে ব্যাকএন্ড তৈরি এবং মুছে ফেলাসহ কিছু সাধারণ ব্যবস্থাপনার কাজ বর্ণনা করা হয়েছে।
একটি ব্যাকএন্ড তৈরি করুন
App Hosting ব্যাকএন্ড হলো পরিচালিত রিসোর্সসমূহের একটি সংগ্রহ, যা App Hosting আপনার ওয়েব অ্যাপ তৈরি ও চালানোর জন্য প্রস্তুত করে।
ফায়ারবেস কনসোল : বিল্ড মেনু থেকে, App Hosting নির্বাচন করুন এবং তারপরে ক্রিয়েট ব্যাকএন্ড নির্বাচন করুন (যদি এটি আপনার ফায়ারবেস প্রকল্পের প্রথম ব্যাকএন্ড হয়, তাহলে গেট স্টার্টেড নির্বাচন করুন)।
CLI: (সংস্করণ 13.15.4 বা তার পরবর্তী সংস্করণ) একটি ব্যাকএন্ড তৈরি করতে, আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান এবং আর্গুমেন্ট হিসাবে আপনার প্রজেক্ট আইডি সরবরাহ করুন:
firebase apphosting:backends:create --project PROJECT_ID
কনসোল বা CLI উভয়ের জন্যই, একটি অঞ্চল বেছে নিতে, একটি GitHub সংযোগ স্থাপন করতে এবং এই মৌলিক ডেপ্লয়মেন্ট সেটিংস কনফিগার করতে নির্দেশাবলী অনুসরণ করুন:
আপনার অ্যাপের রুট ডিরেক্টরি সেট করুন (ডিফল্ট হলো
/)সাধারণত আপনার
package.jsonফাইলটি এখানেই থাকে।
লাইভ শাখা সেট করুন
এটি আপনার গিটহাব রিপোজিটরির সেই ব্রাঞ্চ যা আপনার লাইভ ইউআরএল-এ ডেপ্লয় করা হয়। প্রায়শই, এই ব্রাঞ্চেই ফিচার ব্রাঞ্চ বা ডেভেলপমেন্ট ব্রাঞ্চগুলো মার্জ করা হয়।
স্বয়ংক্রিয় রোলআউট গ্রহণ বা প্রত্যাখ্যান করুন
স্বয়ংক্রিয় রোলআউট ডিফল্টরূপে সক্রিয় থাকে। ব্যাকএন্ড তৈরি সম্পন্ন হলে, আপনি আপনার অ্যাপটি অবিলম্বে App Hosting এ ডেপ্লয় করার জন্য বেছে নিতে পারেন।
আপনার ব্যাকএন্ডের একটি নাম নির্ধারণ করুন।
একটি ব্যাকএন্ড মুছুন
কোনো ব্যাকএন্ড সম্পূর্ণরূপে অপসারণ করতে, প্রথমে Firebase CLI বা Firebase কনসোল ব্যবহার করে সেটিকে ডিলিট করুন এবং তারপরে ম্যানুয়ালি সম্পর্কিত অ্যাসেটগুলি সরিয়ে ফেলুন। এ সময় বিশেষ খেয়াল রাখবেন যেন এমন কোনো রিসোর্স ডিলিট না হয় যা অন্য ব্যাকএন্ড বা আপনার Firebase প্রজেক্টের অন্য কোনো অংশে ব্যবহৃত হতে পারে।
ফায়ারবেস কনসোল : সেটিং মেনু থেকে, 'ডিলিট ব্যাকএন্ড' নির্বাচন করুন।
CLI: (সংস্করণ 13.15.4 বা তার পরবর্তী)
App Hosting ব্যাকএন্ড ডিলিট করতে নিম্নলিখিত কমান্ডটি চালান। এটি আপনার ব্যাকএন্ডের জন্য সমস্ত ডোমেইন নিষ্ক্রিয় করে এবং সংশ্লিষ্ট Cloud Run পরিষেবাটি ডিলিট করে দেয়:
firebase apphosting:backends:delete BACKEND_ID --project PROJECT_ID(ঐচ্ছিক) গুগল ক্লাউড কনসোলের Artifact Registry ট্যাবে, 'firebaseapphosting-images' ফোল্ডার থেকে আপনার ব্যাকএন্ডের ইমেজটি ডিলিট করে দিন।
ক্লাউড সিক্রেট ম্যানেজার- এ, যে সকল সিক্রেটের নামে 'apphosting' শব্দটি রয়েছে, সেগুলো মুছে ফেলুন। বিশেষ খেয়াল রাখবেন যেন এই সিক্রেটগুলো আপনার ফায়ারবেস প্রজেক্টের অন্য কোনো ব্যাকএন্ড বা অন্য কোনো অংশে ব্যবহৃত না হয় ।