স্থানীয়ভাবে আপনার অ্যাপ স্থাপনার পরীক্ষা করুন

আপনি অ্যাপ App Hosting এমুলেটর ব্যবহার করে App Hosting স্থাপনের আগে আপনার অ্যাপের স্থানীয় পরীক্ষা করতে পারেন, যা ফায়ারবেস স্থানীয় এমুলেটর স্যুটের অংশ।

App Hosting এমুলেটর ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি সামগ্রিক Firebase Local Emulator Suite ওয়ার্কফ্লো বুঝতে পেরেছেন এবং আপনি Local Emulator Suite ইনস্টল ও কনফিগার করেছেন এবং এর CLI কমান্ডগুলি পর্যালোচনা করেছেন।

এই বিষয়টি অনুমান করে আপনি ইতিমধ্যেই App Hosting সাথে পরিচিত৷ প্রয়োজন হলে, অ্যাপ App Hosting কীভাবে কাজ করে তা বুঝতে সাহায্য করার জন্য App Hosting ভূমিকা এবং অন্যান্য উপকরণ পর্যালোচনা করুন।

App Hosting এমুলেটর দিয়ে আমি কী করতে পারি?

App Hosting এমুলেটর আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ্লিকেশনগুলি পরীক্ষা এবং পরিমার্জন করতে দেয়। এটি আপনার ডেভেলপমেন্ট প্রক্রিয়াকে স্ট্রিমলাইন করতে পারে এবং ফায়ারবেস ব্যবহার করে তৈরি এবং App Hosting এ স্থাপন করা ওয়েব অ্যাপগুলির গুণমানকে উন্নত করতে পারে।

App Hosting এমুলেটর:

  1. apphosting.yaml কনফিগারেশন ফাইলে সংজ্ঞায়িত পরিবেশ ভেরিয়েবল এবং গোপনীয়তা সহ আপনাকে স্থানীয়ভাবে আপনার ওয়েব অ্যাপ চালাতে দেয়।
  2. apphosting.emulator.yaml ফাইলের সাথে এমুলেটরে ব্যবহারের জন্য পরিবেশের ভেরিয়েবল এবং গোপনীয়তাগুলিকে ওভাররাইড করতে পারে।
  3. অন্যান্য ফায়ারবেস এমুলেটরগুলির সাথে ব্যবহার করা যেতে পারে। আপনি যদি 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 (./)

? The App Hosting emulator uses a file called apphosting.emulator.yaml to
override values in apphosting.yaml for local testing. This codebase does not
have one, would you like to create it? (Y/n)

? Which environment variables would you like to override? (Press <space> to
select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ MEMCACHE_ADDR
 ◯ API_KEY

? What new value would you like for plaintext MEMCACHE_ADDR?

? What would you like to name the secret reference for API_KEY? (test-api-key)

? What new value would you like for secret TESTKEY [input is hidden]? [input is hidden]

? Your config has secret values. Please provide a comma-separated list of users
or groups who should have access to secrets for local development:

✔  Successfully set IAM bindings on secret test-api-key.

এই সেটআপ ফ্লোতে আপনি যে মান প্রদান করেন তা firebase.json এ আপনার App Hosting এমুলেটর কনফিগারেশন আপডেট করতে ব্যবহার করা হয়। আপনি সরাসরি firebase.json আপডেট করে অ্যাপ হোস্টিং এমুলেটর কনফিগার করতে পারেন। অ্যাপ হোস্টিং এমুলেটরের স্কিমা হল:

{
  ...
  "emulators": {
    "apphosting": {
      "startCommand": <command> [optional]
      "rootDirectory": <path> [optional]
      }
    }
  }
  • startCommand স্বয়ংক্রিয়ভাবে উত্পন্ন হয় এবং এমুলেটর আরম্ভ হলে সেট করা হয়। প্রদান না করা হলে, এমুলেটর আপনার প্যাকেজ ম্যানেজারের dev কমান্ড সনাক্ত করবে এবং চালাবে।
  • rootDirectory মনোরেপো প্রকল্প সেটআপ সমর্থন করতে ব্যবহৃত হয়। যদি আপনার ওয়েব অ্যাপটি একটি সাবডিরেক্টরিতে থাকে, তাহলে আপনাকে সেই ডিরেক্টরির পাথটি রুট ( firebase.json এর অবস্থান) এর সাপেক্ষে প্রদান করতে হবে।

অনুকরণ পরিচালনা করুন

এমুলেটর ইনিশিয়ালাইজেশন আপনার অ্যাপের রুট ডিরেক্টরিতে একটি apphosting.emulator.yaml ফাইল তৈরি করে। এই কনফিগারেশন ফাইলটির উত্পাদনে ব্যবহৃত apphosting.yaml ফাইলের মতো একই স্কিমা রয়েছে, তবে এর পরিবর্তে স্থানীয় উন্নয়নের জন্য কঠোরভাবে বোঝানো হয়েছে। ডিফল্টরূপে, এমুলেটর আপনার apphosting.yaml ফাইল থেকে কনফিগারেশন পড়ে, কিন্তু যদি একটি apphosting.emulator.yaml ফাইল থাকে, তাহলে সেই ফাইলের কনফিগারেশনগুলিকে অগ্রাধিকার দেওয়া হয় এবং অগ্রাধিকার দেওয়া হয়।

apphosting.emulator.yaml ফাইলটি সহকর্মীদের সাথে প্রতিশ্রুতিবদ্ধ এবং ভাগ করার জন্য নিরাপদ হওয়ার জন্য ডিজাইন করা হয়েছে৷ আপনি ভুলবশত সোর্স রিপোজিটরিতে সংবেদনশীল ডেটা কমিট করবেন না তা নিশ্চিত করতে সাহায্য করার জন্য, apphosting.yaml এ গোপনীয় যে কোনও পরিবেশ পরিবর্তনশীল অবশ্যই apphosting.emulator.yaml এ গোপনীয় হতে হবে। প্রোডাকশন এবং স্থানীয় ডেভেলপমেন্টের (যেমন একটি Gemini API কী) মধ্যে কোনো গোপন পরিবর্তনের প্রয়োজন না হলে, এটি apphosting.emulator.yaml এ যোগ করার প্রয়োজন নেই; পরিবর্তে আপনার দলকে গোপনে অ্যাক্সেস দিন

যদি আপনার অ্যাপ্লিকেশনটি অনেক গোপনীয়তা ব্যবহার করে (উদাহরণস্বরূপ, তিনটি ভিন্ন পরিষেবার জন্য API কী, প্রতিটি উত্পাদন, স্টেজিং এবং স্থানীয় বিকাশের জন্য আলাদা মান সহ) আপনি ক্লাউড সিক্রেট ম্যানেজারের বিনামূল্যের স্তর অতিক্রম করতে পারেন এবং প্রতি মাসে অতিরিক্ত গোপনীয়তার প্রতি $0.06 দিতে পারেন৷ আপনি যদি এই ফি এড়াতে উত্স নিয়ন্ত্রণের বাইরে স্থানীয় কনফিগারেশন পরিচালনা করতে পছন্দ করেন তবে আপনি লিগ্যাসি apphosting.local.yaml ফাইলটি ব্যবহার করতে পারেন৷ apphosting.emulator.yaml বিপরীতে এই ফাইলটিকে পরিবেশ ভেরিয়েবলের জন্য প্লেইনটেক্সট মান প্রদান করার অনুমতি দেওয়া হয় যা apphosting.yaml এ গোপন মান।

ব্যবহারকারী বা গোষ্ঠীকে গোপনীয়তায় অ্যাক্সেস দিন

apphosting.emulator.yaml এ সংরক্ষিত গোপনীয়তাগুলি পড়া হয় যখন এমুলেটর শুরু হয়। এর মানে হল যে আপনার ডেভেলপমেন্ট টিমের গোপনে অ্যাক্সেস প্রয়োজন। আপনি apphosting:secrets:grantaccess কমান্ড ব্যবহার করতে পারেন ইমেলের মাধ্যমে একজন ব্যবহারকারী বা গোষ্ঠীকে গোপনে অ্যাক্সেস দিতে।

firebase apphosting:secrets:grantaccess test-api-key --emails my-team@my-company.com

যেখানে প্রযোজ্য, সেখানে apphosting.emulator.yaml এ শুধুমাত্র পরীক্ষার কী ব্যবহার করার কথা বিবেচনা করুন যেগুলির উত্পাদন ডেটা অ্যাক্সেস নেই, বিশ্বব্যাপী পার্শ্ব প্রতিক্রিয়া থাকতে পারে না (ইমেল পাঠানো, ক্রেডিট কার্ড চার্জ করা), এবং/অথবা কম কোটা আছে। এটি নিশ্চিত করতে সাহায্য করে যে অ-পর্যালোচিত কোডের বাস্তব-বিশ্বের ফলাফল কম।

ব্যক্তিগত ব্যবহারকারীদের অ্যাক্সেস দেওয়ার পরিবর্তে গোপনীয়তায় অ্যাক্সেস পরিচালনা করতে Google গ্রুপ ব্যবহার করার কথা বিবেচনা করুন। এটি আপনার বিকাশকারী দলে নতুন সদস্যদের অনবোর্ডিংকে সহজ করবে কারণ তাদের গ্রুপে যুক্ত করা তাদের প্রয়োজনীয় সমস্ত গোপনীয়তায় অ্যাক্সেস মঞ্জুর করবে। আপনার ইতিমধ্যে একটি উপযুক্ত গ্রুপ থাকতে পারে যেখানে বিকাশকারীরা একে অপরের সাথে যোগাযোগ করে। Google গোষ্ঠীগুলির দ্বারা অ্যাক্সেস নিয়ন্ত্রণ করা নিশ্চিত করতে সাহায্য করে যে বিকাশকারীরা আপনার টিম ছেড়ে চলে গেলে তারা ইমেল গ্রুপ থেকে সরানো হলে সমস্ত গোপনীয়তার অ্যাক্সেস হারাবে৷ যদি সিক্রেটটির প্রোডাকশন ডেটা বা বাস্তব-বিশ্বের পার্শ্বপ্রতিক্রিয়াগুলিতে অ্যাক্সেস থাকে, তবে আপনার কী ঘোরানো এবং এটিকে firebase apphosting:secrets:set সাথে একটি নতুন মান দেওয়া উপযুক্ত হতে পারে।

এমুলেটর চালান

firebase emulators:start

এটি App Hosting এমুলেটর সহ আপনার firebase.json ফাইলে সংজ্ঞায়িত সমস্ত এমুলেটর শুরু করবে।