অ্যাপ হোস্টিং ব্যাকএন্ড কনফিগার এবং পরিচালনা করুন

App Hosting ব্যবহার সহজে এবং কম রক্ষণাবেক্ষণের জন্য ডিজাইন করা হয়েছে, বেশিরভাগ ব্যবহারের ক্ষেত্রে অপ্টিমাইজ করা ডিফল্ট সেটিংস সহ। একই সময়ে, App Hosting আপনাকে আপনার নির্দিষ্ট প্রয়োজনের জন্য ব্যাকএন্ডগুলি পরিচালনা এবং কনফিগার করার জন্য সরঞ্জাম সরবরাহ করে। এই নির্দেশিকা সেই টুলস এবং প্রক্রিয়াগুলি বর্ণনা করে।

একটি ব্যাকএন্ড কনফিগার করুন

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

ব্যাকএন্ডের Cloud Run পরিষেবার সেটিংস, কিছু পরিবেশের ভেরিয়েবল এবং ক্লাউড সিক্রেট ম্যানেজার দ্বারা পরিচালিত গোপনীয়তার কিছু উল্লেখ সহ একটি সাধারণ apphosting.yaml ফাইল দেখতে কেমন হতে পারে:

# 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.appspot.com
    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 – প্রতিটি পরিবেশন দৃষ্টান্তের জন্য ব্যবহৃত CPU-র সংখ্যা (ডিফল্ট 0)।
  • memoryMiB - এমআইবি-তে প্রতিটি পরিবেশন উদাহরণের জন্য বরাদ্দ করা মেমরির পরিমাণ (ডিফল্ট 512)
  • maxInstances - এক সময়ে চালানোর জন্য সর্বাধিক সংখ্যক কন্টেইনার (ডিফল্ট 100 এবং কোটা দ্বারা পরিচালিত)
  • minInstances - সর্বদা জীবিত রাখতে পাত্রের সংখ্যা (ডিফল্ট 0)।
  • concurrency - প্রতিটি পরিবেশনকারী দৃষ্টান্ত গ্রহণ করতে পারে এমন অনুরোধের সর্বোচ্চ সংখ্যা (ডিফল্ট 80)।

cpu এবং memoryMiB মধ্যে গুরুত্বপূর্ণ সম্পর্ক লক্ষ্য করুন; মেমরি 128 থেকে 32768 এর মধ্যে যেকোনো পূর্ণসংখ্যার মান সেট করা যেতে পারে, তবে মেমরির সীমা বাড়ানোর জন্য CPU সীমা বাড়ানোর প্রয়োজন হতে পারে:

  • 4GiB-এর উপরে কমপক্ষে 2 CPUs প্রয়োজন
  • 8GiB-এর বেশি হলে কমপক্ষে 4টি CPU প্রয়োজন
  • 16GiB-এর বেশি হলে কমপক্ষে 6টি CPU-এর প্রয়োজন হয়
  • 24GiB-এর উপরে কমপক্ষে 8 CPUs প্রয়োজন

একইভাবে, cpu -এর মান কনকারেন্সি সেটিংসকে প্রভাবিত করে। আপনি যদি 1 সিপিইউ-এর কম একটি মান সেট করেন, তাহলে আপনাকে অবশ্যই 1 তে সমবর্তন সেট করতে হবে এবং সিপিইউ শুধুমাত্র অনুরোধ প্রক্রিয়াকরণের সময় বরাদ্দ করা হবে।

বিল্ড এনভায়রনমেন্ট কনফিগার করুন

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

env:
-   variable: STORAGE_BUCKET
    value: mybucket.appspot.com

Next.js অ্যাপের জন্য, পরিবেশ ভেরিয়েবল সম্বলিত dotenv ফাইলগুলিও App Hosting সাথে কাজ করবে। আমরা যেকোনো কাঠামোর সাথে দানাদার পরিবেশ পরিবর্তনশীল নিয়ন্ত্রণের জন্য apphosting.yaml ব্যবহার করার পরামর্শ দিই।

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

env:
-   variable: STORAGE_BUCKET
    value: mybucket.appspot.com
    availability:
    -   BUILD
    -   RUNTIME

Next.js অ্যাপ্লিকেশানগুলির জন্য, আপনি ব্রাউজারে একটি ভেরিয়েবল অ্যাক্সেসযোগ্য করতে আপনার dotenv ফাইলে যেভাবে NEXT_PUBLIC_ প্রিফিক্স ব্যবহার করতে পারেন।

env:
-   variable: NEXT_PUBLIC_STORAGE_BUCKET
    value: mybucket.appspot.com
    availability:
    -   BUILD
    -   RUNTIME

বৈধ পরিবর্তনশীল কী AZ অক্ষর বা আন্ডারস্কোর নিয়ে গঠিত। কিছু পরিবেশ পরিবর্তনশীল কী অভ্যন্তরীণ ব্যবহারের জন্য সংরক্ষিত। আপনার কনফিগারেশন ফাইলগুলিতে এই কীগুলির কোনটি ব্যবহার করবেন না:

  • X_FIREBASE_ দিয়ে শুরু হওয়া যেকোনো পরিবর্তনশীল
  • PORT
  • K_SERVICE
  • K_REVISION
  • K_CONFIGURATION

গোপন পরামিতি সংরক্ষণ এবং অ্যাক্সেস

সংবেদনশীল তথ্য যেমন API কীগুলি গোপনীয় হিসাবে সংরক্ষণ করা উচিত। সোর্স কন্ট্রোলে সংবেদনশীল তথ্য চেক করা এড়াতে আপনি apphosting.yaml এ গোপনীয়তা উল্লেখ করতে পারেন।

টাইপ secret প্যারামিটারগুলি স্ট্রিং প্যারামিটারগুলিকে উপস্থাপন করে যার একটি মান ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষিত থাকে৷ সরাসরি মান প্রাপ্ত করার পরিবর্তে, গোপন প্যারামিটারগুলি ক্লাউড সিক্রেট ম্যানেজারের অস্তিত্বের বিরুদ্ধে পরীক্ষা করে এবং রোলআউটের সময় মানগুলি লোড করে৷

  -   variable: API_KEY
      secret: myApiKeySecret

ক্লাউড সিক্রেট ম্যানেজারের গোপনীয়তা একাধিক সংস্করণ থাকতে পারে। ডিফল্টরূপে, আপনার লাইভ ব্যাকএন্ডে উপলব্ধ একটি গোপন প্যারামিটারের মানটি ব্যাকএন্ড তৈরির সময়ে গোপনটির সর্বশেষ উপলব্ধ সংস্করণে পিন করা হয়। প্যারামিটারগুলির সংস্করণ এবং জীবনচক্র পরিচালনার জন্য আপনার প্রয়োজনীয়তা থাকলে, আপনি ক্লাউড সিক্রেট ম্যানেজারের সাথে নির্দিষ্ট সংস্করণগুলিতে পিন করতে পারেন। উদাহরণস্বরূপ, সংস্করণ 5 এ পিন করতে:

  - variable: PINNED_API_KEY
    secret: myApiKeySecret@5

আপনি CLI কমান্ড firebase apphosting:secrets:set দিয়ে গোপনীয়তা তৈরি করতে পারেন এবং আপনাকে প্রয়োজনীয় অনুমতি যোগ করতে বলা হবে। এই প্রবাহটি আপনাকে apphosting.yaml এ স্বয়ংক্রিয়ভাবে গোপন রেফারেন্স যোগ করার বিকল্প দেয়।

ক্লাউড সিক্রেট ম্যানেজার কার্যকারিতার সম্পূর্ণ স্যুট ব্যবহার করতে, আপনি পরিবর্তে ক্লাউড সিক্রেট ম্যানেজার কনসোল ব্যবহার করতে পারেন। আপনি যদি এটি করেন, তাহলে আপনাকে CLI কমান্ডের সাহায্যে আপনার App Hosting ব্যাকএন্ডে অনুমতি দিতে হবে firebase apphosting:secrets:grantaccess

Firebase Auth অবস্থা সিঙ্ক্রোনাইজ করুন

Firebase Auth ব্যবহার করা অ্যাপগুলিকে ক্লায়েন্ট এবং সার্ভারের মধ্যে প্রমাণীকরণের অবস্থা সিঙ্ক্রোনাইজ রাখতে সাহায্য করার জন্য Firebase ওয়েব SDK ব্যবহার করার কথা বিবেচনা করা উচিত। এটি একটি পরিষেবা কর্মীর সাথে FirebaseServerApp প্রয়োগ করে সহজতর করা যেতে পারে। মৌলিক টাস্ক প্রবাহ হল:

  1. সার্ভারে অনুরোধে আপনার অ্যাপের জন্য সঠিক শিরোনাম যোগ করে এমন একটি পরিষেবা কর্মী প্রয়োগ করুন
  2. সার্ভারে অনুরোধ থেকে শিরোনামগুলি পান, এবং FirebaseServerApp এর মাধ্যমে এটিকে একজন প্রমাণীকরণ ব্যবহারকারীতে রূপান্তর করুন।

ব্যাকএন্ড পরিচালনা করুন

App Hosting ব্যাকএন্ডের মৌলিক ব্যবস্থাপনার জন্য কমান্ডগুলি Firebase CLI- তে প্রদান করা হয়। Firebase কনসোলে কিছু অপারেশনও পাওয়া যায়। এই বিভাগে ব্যাকএন্ড তৈরি করা এবং মুছে ফেলা সহ আরও সাধারণ ব্যবস্থাপনার কিছু কাজ বর্ণনা করা হবে।

একটি ব্যাকএন্ড তৈরি করুন

একটি App Hosting ব্যাকএন্ড হল পরিচালিত সম্পদের সংগ্রহ যা App Hosting আপনার ওয়েব অ্যাপ তৈরি এবং চালানোর জন্য তৈরি করে। আপনি Firebase কনসোল বা Firebase CLI ব্যবহার করে App Hosting ব্যাকএন্ড তৈরি এবং তালিকাভুক্ত করতে পারেন।

ফায়ারবেস কনসোল : বিল্ড মেনু থেকে, অ্যাপ হোস্টিং নির্বাচন করুন এবং তারপর শুরু করুন

CLI: (সংস্করণ 13.15.4 বা পরবর্তী) একটি ব্যাকএন্ড তৈরি করতে, আপনার স্থানীয় প্রকল্প ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান, একটি যুক্তি হিসাবে আপনার ProjectID সরবরাহ করে (প্রিভিউয়ের জন্য, শুধুমাত্র us-central1 অঞ্চল সমর্থিত):

firebase apphosting:backends:create --project PROJECT_ID --location us-central1

কনসোল বা CLI উভয়ের জন্যই, আপনার ব্যাকএন্ডে একটি নাম বরাদ্দ করতে, একটি GitHub সংযোগ সেট আপ করতে এবং এই মৌলিক স্থাপনার সেটিংস কনফিগার করতে প্রম্পটগুলি অনুসরণ করুন:

  • আপনার অ্যাপের রুট ডিরেক্টরি সেট করুন (ডিফল্টে / )

    এটি সাধারণত যেখানে আপনার package.json ফাইলটি অবস্থিত।

  • লাইভ শাখা সেট করুন

    এটি আপনার GitHub সংগ্রহস্থলের শাখা যা আপনার লাইভ ইউআরএলে স্থাপন করা হয়। প্রায়শই, এটি সেই শাখা যেখানে বৈশিষ্ট্য শাখা বা উন্নয়ন শাখা একত্রিত হয়।

  • স্বয়ংক্রিয় রোলআউটগুলি গ্রহণ বা প্রত্যাখ্যান করুন

    স্বয়ংক্রিয় রোলআউটগুলি ডিফল্টরূপে সক্রিয় থাকে৷ ব্যাকএন্ড তৈরির সমাপ্তিতে, আপনি আপনার অ্যাপটি অবিলম্বে App Hosting এ স্থাপন করার জন্য বেছে নিতে পারেন।

একটি ব্যাকএন্ড মুছুন

একটি ব্যাকএন্ড সম্পূর্ণরূপে অপসারণ করতে, প্রথমে Firebase CLI ব্যবহার করুন এবং তারপরে ম্যানুয়ালি সম্পর্কিত সম্পদগুলি সরিয়ে ফেলুন, বিশেষ যত্ন নিন যাতে অন্য ব্যাকএন্ড বা আপনার Firebase প্রকল্পের অন্যান্য দিকগুলি ব্যবহার করতে পারে এমন কোনও সংস্থান মুছে না যায়।

  1. App Hosting ব্যাকএন্ড মুছে ফেলতে নিম্নলিখিত কমান্ডটি চালান। এটি আপনার ব্যাকএন্ডের জন্য সমস্ত ডোমেন অক্ষম করে এবং সংশ্লিষ্ট Cloud Run পরিষেবা মুছে দেয়:

    firebase apphosting:backends:delete BACKEND_ID --project PROJECT_ID --location us-central1
    
  2. (ঐচ্ছিক) Artifact Registry জন্য Google ক্লাউড কনসোল ট্যাবে, "firebaseapphosting-images"-এ আপনার ব্যাকএন্ডের ছবি মুছুন।

  3. ক্লাউড সিক্রেট ম্যানেজারে , গোপন নামে "অ্যাপহোস্টিং" সহ যেকোন গোপনীয়তা মুছে ফেলুন, এই গোপনীয়তাগুলি অন্য ব্যাকএন্ড বা আপনার ফায়ারবেস প্রজেক্টের অন্যান্য দিকগুলি ব্যবহার না করে তা নিশ্চিত করার জন্য বিশেষ যত্ন নিন