আপনি App Hosting এমুলেটর ব্যবহার করে App Hosting স্থাপনের আগে আপনার অ্যাপের স্থানীয় পরীক্ষা করতে পারেন, যা ফায়ারবেস স্থানীয় এমুলেটর স্যুটের অংশ।
App Hosting এমুলেটর ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি সামগ্রিক ফায়ারবেস স্থানীয় Local Emulator Suite ওয়ার্কফ্লো বুঝতে পেরেছেন এবং আপনি স্থানীয় Local Emulator Suite ইনস্টল ও কনফিগার করেছেন এবং এর CLI কমান্ডগুলি পর্যালোচনা করেছেন।
এই বিষয়টি অনুমান করে আপনি ইতিমধ্যেই App Hosting এর সাথে পরিচিত৷ প্রয়োজন হলে, App Hosting কীভাবে কাজ করে তা বুঝতে সাহায্য করার জন্য App Hosting ভূমিকা এবং অন্যান্য উপকরণ পর্যালোচনা করুন।
App Hosting এমুলেটর দিয়ে আমি কী করতে পারি?
App Hosting এমুলেটর আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ্লিকেশনগুলি পরীক্ষা এবং পরিমার্জন করতে দেয়, ঘনিষ্ঠভাবে একটি উত্পাদন পরিবেশের প্রতিলিপি করে৷ এটি আপনার ডেভেলপমেন্ট প্রক্রিয়াকে স্ট্রিমলাইন করতে পারে এবং ফায়ারবেস ব্যবহার করে তৈরি এবং App Hosting এ স্থাপন করা ওয়েব অ্যাপগুলির গুণমানকে উন্নত করতে পারে।
App Hosting এমুলেটর:
-
apphosting.yaml
কনফিগারেশন ফাইলে সংজ্ঞায়িত পরিবেশের ভেরিয়েবল সহ আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ চালাতে দেয় - আপনার বিভিন্ন App Hosting পরিবেশে আপনার সংরক্ষিত গোপনীয়তা রপ্তানি করতে পারে, আপনাকে বিভিন্ন পরিবেশে অ্যাপ্লিকেশন অনুকরণ করতে দেয়
- অন্যান্য ফায়ারবেস এমুলেটরগুলির সাথে ব্যবহার করা যেতে পারে। আপনি যদি Firestore, Auth, বা অন্য কোনো এমুলেটর ব্যবহার করেন, Local Emulator Suite নিশ্চিত করে যে এই এমুলেটরগুলি App Hosting এমুলেটরের আগে শুরু হয়েছে।
এমুলেটর কনফিগার করুন
শুরু করতে, স্থানীয় এমুলেটর স্যুট ইনস্টল, কনফিগার এবং ইন্টিগ্রেট স্থানীয় এমুলেটর স্যুট- এ বর্ণিত হিসাবে Local Emulator Suite ইনস্টল করুন এবং শুরু করুন। অন্য যে কোনো ফায়ারবেস এমুলেটর ছাড়াও আপনি সেট আপ করতে চান, App Hosting Emulator
নির্বাচন করতে ভুলবেন না। CLI আপনাকে কিছু App Hosting এমুলেটর মানগুলির জন্য অনুরোধ করে, যার মধ্যে রয়েছে:
- প্রকল্পের সাথে সম্পর্কিত আপনার অ্যাপের রুট ডিরেক্টরি; আপনি যদি App Hosting সাথে মনোরেপোস ব্যবহার করেন তবে এটি গুরুত্বপূর্ণ।
- আপনি নির্দিষ্ট পরিবেশের জন্য গোপনীয়তা রপ্তানি করতে চান কিনা।
firebase init emulators
=== Emulators Setup
? Which Firebase emulators do you want to set up? Press Space to select emulators, then Enter to confirm your choices. (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ App Hosting Emulator
◯ Firestore Emulator
◯ Database Emulator
◯ Hosting Emulator
◯ Pub/Sub Emulator
◯ Storage Emulator
◯ Eventarc Emulator
(Move up and down to reveal more choices)
? Specify your app's root directory relative to your project (.)
? What configs would you like to export? (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ Secrets
? Which environment would you like to export secrets from Secret Manager for?:
◯ base (apphosting.yaml)
❯◯ staging (apphosting.yaml + apphosting.staging.yaml)
◯ preview (apphosting.yaml + apphosting.preview.yaml)
i Wrote Secrets as environment variables to apphosting.local.yaml.
i apphosting.local.yaml has been automatically added to your .gitignore.
এই সেটআপ ফ্লোতে আপনি যে মান প্রদান করেন তা firebase.json
এ আপনার App Hosting এমুলেটর কনফিগারেশন আপডেট করতে ব্যবহার করা হয়। আপনি সরাসরি firebase.json
আপডেট করে অ্যাপ হোস্টিং এমুলেটর কনফিগার করতে পারেন। অ্যাপ হোস্টিং এমুলেটরের স্কিমা হল:
{
...
"emulators": {
"apphosting": {
"startCommandOverride": <command> [optional]
"rootDirectory": <path> [optional]
}
}
}
-
startCommandOverride
স্বয়ংক্রিয়ভাবে তৈরি হয় এবং যখন এমুলেটর শুরু হয় তখন সেট হয়। প্রদান না করা হলে, এমুলেটর আপনার প্যাকেজ ম্যানেজারের dev কমান্ড সনাক্ত করবে এবং চালাবে। -
rootDirectory
মনোরেপো প্রকল্প সেটআপ সমর্থন করতে ব্যবহৃত হয়। যদি আপনার ওয়েব অ্যাপটি একটি সাবডিরেক্টরিতে থাকে, তাহলে আপনাকে সেই ডিরেক্টরির পাথটি রুট (firebase.json
এর অবস্থান) এর সাপেক্ষে প্রদান করতে হবে।
অনুকরণ পরিচালনা করুন
এমুলেটর ইনিশিয়ালাইজেশন আপনার অ্যাপের রুট ডিরেক্টরিতে একটি apphosting.local.yaml
ফাইল তৈরি করে। এই কনফিগারেশন ফাইলটির উত্পাদনে ব্যবহৃত apphosting.yaml
ফাইলের মতো একই স্কিমা রয়েছে, তবে এর পরিবর্তে স্থানীয় উন্নয়নের জন্য কঠোরভাবে বোঝানো হয়েছে। ডিফল্টরূপে, এমুলেটর আপনার apphosting.yaml
ফাইল থেকে কনফিগারেশন পড়ে, কিন্তু যদি একটি apphosting.local.yaml
ফাইল থাকে, তাহলে সেই ফাইলের কনফিগারেশনগুলিকে অগ্রাধিকার দেওয়া হয় এবং অগ্রাধিকার দেওয়া হয়।
স্থানীয়ভাবে বিভিন্ন পরিবেশ অনুকরণ করতে গোপনীয়তা রপ্তানি করুন
আপনি যদি একাধিক পরিবেশের সাথে কাজ করেন এবং স্থানীয়ভাবে বিভিন্ন অ্যাপ পরিবেশ অনুকরণ করতে চান, তাহলে আপনার সংশ্লিষ্ট পরিবেশের গোপনীয়তার প্রয়োজন হতে পারে। আপনি CLI কমান্ড ব্যবহার করে একটি নির্দিষ্ট পরিবেশের জন্য গোপনীয়তা রপ্তানি করতে পারেন apphosting:config:export
(বিকল্পভাবে, এমুলেটর কনফিগারে দেখানো হিসাবে, আপনি এমুলেটর আরম্ভ করার সময় ঐচ্ছিকভাবে গোপনীয়তা আমদানি করতে পারেন)।
এই কমান্ডের জন্য আপনাকে আপনার প্রকল্পের উপলব্ধ App Hosting পরিবেশ থেকে নির্বাচন করতে হবে। পরিবেশ-নির্দিষ্ট App Hosting কনফিগারেশন (উদাহরণস্বরূপ, "apphosting.staging.yaml") এবং বেস App Hosting কনফিগারেশন ("apphosting.yaml") একত্রিত করা হয়েছে, পরিবেশ-নির্দিষ্ট কনফিগারেশনকে অগ্রাধিকার দেওয়া হয়েছে। উভয় কনফিগারেশনে একই নামের গোপনীয়তা থাকলে, পরিবেশ-নির্দিষ্ট কনফিগারেশনের গোপনীয়তা ব্যবহার করা হয়।
উদাহরণস্বরূপ, স্টেজিং পরিবেশ থেকে এমুলেটরে গোপনীয়তা রপ্তানি করতে:
firebase apphosting:config:export --project <your firebase project Id>
? What configs would you like to export? (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ Secrets
? Which environment would you like to export secrets from Secret Manager for?:
◯ base (apphosting.yaml)
❯◯ staging (apphosting.yaml + apphosting.staging.yaml)
◯ preview (apphosting.yaml + apphosting.preview.yaml)
i Wrote Secrets as environment variables to apphosting.local.yaml.
i apphosting.local.yaml has been automatically added to your .gitignore.
আপনার apphosting.local.yaml
ফাইল এনভায়রনমেন্ট ভেরিয়েবল হিসাবে এক্সপোর্ট করা গোপনীয়তা সহ আপডেট করা হয়েছে (বা এটি বিদ্যমান না থাকলে তৈরি করা হয়েছে)। যেহেতু ফাইলটিতে এখন প্লেইন টেক্সটে সংবেদনশীল তথ্য রয়েছে, তাই এটি স্বয়ংক্রিয়ভাবে আপনার .gitignore
ফাইলে যোগ করা হবে যাতে এটি দুর্ঘটনাক্রমে আপনার সোর্স কোড রিপোজিটরিতে প্রতিশ্রুতিবদ্ধ না হয়।
এমুলেটর চালান
firebase emulators:start
এটি App Hosting এমুলেটর সহ আপনার firebase.json
ফাইলে সংজ্ঞায়িত সমস্ত এমুলেটর শুরু করবে।