আপনার এক্সটেনশনে প্যারামিটার সেট আপ করুন এবং ব্যবহার করুন

Parameters are the mechanism through which a user customizes each installed instance of an extension. Parameters are like the environment variables for an extension. প্যারামিটারগুলির মানগুলি হয় স্বয়ংক্রিয়-জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইনস্টলেশন চলাকালীন ব্যবহারকারী দ্বারা নির্দিষ্ট) করা যেতে পারে।

These parameters are available for you to reference in your extension's functions source code, your extension.yaml file, and your POSTINSTALL.md file. Here's the syntax for how to reference a parameter called PARAMETER_NAME :

  • Within your functions source code, use the params module (for example, params.defineInt(" PARAMETER_NAME ") ) or process.env. PARAMETER_NAME .

  • extension.yaml এবং POSTINSTALL.md এর মধ্যে, ${param: PARAMETER_NAME } ব্যবহার করুন}

    After installation, the Firebase console displays the contents of the POSTINSTALL.md file and populates any parameter references with the actual values for the installed instance.

অটো-জনবহুল পরামিতি

Each installed instance of an extension automatically has access to several default auto-populated parameters provided by Firebase (refer to the table below). These parameter values are either the default values for the Firebase project (like the default Storage bucket) or they're extension-specific (like the extension's instance ID).

সমস্ত অটো-জনবহুল প্যারামিটার মানগুলি অপরিবর্তনীয়। They are set at the time of project creation or extension installation.

যদিও ফায়ারবেস এক্সটেনশনের জন্য এই প্যারামিটার মানগুলি অটো-পপুলেট করে, ফায়ারবেস ইনস্টলেশন চলাকালীন ব্যবহারকারীর জন্য সম্পর্কিত পণ্যগুলিকে স্বতঃ-সরবরাহ করে না । The user installing the extension must enable the associated and applicable product(s) in their project before installation. For example, if your extension involves Cloud Firestore , the user must set up Cloud Firestore in their project. We recommend notifying your users about these requirements in the PREINSTALL.md file .

অটো-জনবহুল প্যারামিটারের জন্য রেফারেন্স বর্ণনা প্যারামিটার মান (ফায়ারবেস দ্বারা সরবরাহ করা)
Parameters with default values from the Firebase project
PROJECT_ID Unique identifier for the Firebase project in which the extension is installed

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

DATABASE_URL The Firebase project's default Realtime Database instance URL

সাধারণ বিন্যাস:
https:// project-id -default-rtdb.firebaseio.com
(মার্কিন উদাহরণ)
বা
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(অ-মার্কিন উদাহরণ)

উদাহরণ মান:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

ফায়ারবেস প্রকল্পের ডিফল্ট Realtime Database উদাহরণ নাম

সাধারণত, এই মানটি প্রজেক্ট আইডির সমান, বা -default-rtdb শেষ হয়।

সাধারণ বিন্যাস:
project-id

উদাহরণ মান:
project-123

STORAGE_BUCKET ফায়ারবেস প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বালতি নাম

সাধারণ বিন্যাস:
project-id .appspot.com

উদাহরণ মান:
project-123.appspot.com

এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার
EXT_INSTANCE_ID

ইনস্টল এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী

এই মানটি extension.yaml ফাইলে নির্দিষ্ট করা name ক্ষেত্র থেকে তৈরি করা হয়েছে।

1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ):
name-from-extension.yaml

উদাহরণ মান:
my-awesome-extension


২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

উদাহরণ মান:
my-awesome-extension-6m31

ব্যবহারকারী-কনফিগার করা পরামিতি

একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার extension.yaml ফাইলের params বিভাগে প্রম্পট সেট আপ করুন৷

এখানে একটি উদাহরণ params বিভাগ রয়েছে, তারপরে সমস্ত উপলভ্য প্যারামিটার ক্ষেত্রগুলি বর্ণনা করে একটি টেবিল।

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

আপনার extension.yaml ফাইলের params বিভাগে, ব্যবহারকারী-কনফিগার করা প্যারামিটারটি সংজ্ঞায়িত করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ টাইপ বর্ণনা
param
(প্রয়োজনীয়)
স্ট্রিং প্যারামিটারের নাম
label
(প্রয়োজনীয়)
স্ট্রিং

প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ

Displayed to the user when they're prompted for the parameter's value

description
(ঐচ্ছিক)
স্ট্রিং

প্যারামিটারের জন্য বিশদ বিবরণ

Displayed to the user when they're prompted for the parameter's value

মার্কডাউন সমর্থন করে

type
(ঐচ্ছিক)
স্ট্রিং

Input mechanism for how the user sets the parameter's value (for example, enter text directly or select from dropdown list)

বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:

  • string : ফ্রি-ফর্ম পাঠ্য প্রবেশের অনুমতি দেয় (আপনার validationRegex দ্বারা সীমাবদ্ধ হিসাবে)
  • select : বিকল্পগুলির একটি প্রাক-সংজ্ঞায়িত তালিকা থেকে একটি প্রবেশের নির্বাচনের অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • multiSelect : বিকল্পগুলির একটি প্রাক-সংজ্ঞায়িত তালিকা থেকে এক বা একাধিক এন্ট্রি নির্বাচনের অনুমতি দেয়। আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই options ক্ষেত্রটিও সংজ্ঞায়িত করতে হবে।
  • selectResource : ব্যবহারকারীর প্রজেক্ট থেকে নির্দিষ্ট ধরনের ফায়ারবেস রিসোর্স (যেমন Cloud Storage বালতি) নির্বাচন করার অনুমতি দেয়।

    যখন আপনি এই ধরনের একটি প্যারামিটার নির্দিষ্ট করেন, ব্যবহারকারীরা ইনস্টলেশন UI-তে আরও ব্যবহারকারী-বান্ধব নির্বাচন উইজেট পাবেন; এই কারণে, যখনই সম্ভব selectResource পরামিতি ব্যবহার করুন।

    আপনি যদি এই মানটি নির্দিষ্ট করেন তবে আপনাকে অবশ্যই resourceType ক্ষেত্রটি সংজ্ঞায়িত করতে হবে।

  • secret : সংবেদনশীল স্ট্রিং সংরক্ষণের অনুমতি দেয়, যেমন তৃতীয় পক্ষের পরিষেবাগুলির জন্য API কী। এই মানগুলি ক্লাউড সিক্রেট ম্যানেজারে সংরক্ষণ করা হবে।

    ক্লাউড সিক্রেট ম্যানেজার হল একটি প্রদত্ত পরিষেবা, যেটির ব্যবহারের ফলে আপনার এক্সটেনশন ইনস্টল করা ব্যবহারকারীদের জন্য চার্জ হতে পারে৷ আপনি যদি secret প্যারামিটার টাইপ ব্যবহার করেন, তাহলে আপনার প্রিইনস্টল ফাইলে ডকুমেন্ট করতে ভুলবেন না যে আপনার এক্সটেনশনটি ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে।

যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি string -এর type ডিফল্ট হয়।

options
(যদি প্যারামিটারের type select হয় বা multiSelect হয় তবে প্রয়োজনীয়)
তালিকা

যে মানগুলি থেকে ব্যবহারকারী নির্বাচন করতে পারেন তার তালিকা

options ক্ষেত্রের মধ্যে label এবং value ক্ষেত্রগুলি অন্তর্ভুক্ত করুন:

  • label (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের সংক্ষিপ্ত বিবরণ
  • value (স্ট্রিং) : নির্বাচনযোগ্য বিকল্পের প্রকৃত মান

options ক্ষেত্রের জন্য value ক্ষেত্রটি প্রয়োজন।
যদি label বাদ দেওয়া হয় তবে তালিকা বিকল্পটি value প্রদর্শন করতে ডিফল্ট হয়।

resourceType
(যদি প্যারামিটারের type selectResource হয় তবে প্রয়োজনীয়)
স্ট্রিং

ব্যবহারকারীকে নির্বাচন করতে অনুরোধ জানাতে ফায়ারবেস রিসোর্সের ধরণ। বর্তমানে, কেবল Cloud Storage বালতিগুলি রিসোর্স নির্বাচকদের সমর্থন করে:

সম্পদের ধরন আইডি টাইপ করুন
Cloud Storage বালতি storage.googleapis.com/Bucket

অজানা resourceType মান উপেক্ষা করা হবে এবং UI প্যারামিটারটিকে ফ্রি-ফর্ম string ইনপুট ক্ষেত্র হিসাবে রেন্ডার করবে।

example
(ঐচ্ছিক)
স্ট্রিং

প্যারামিটারের জন্য উদাহরণ মান

validationRegex
(ঐচ্ছিক)
(কেবল তখনই প্রযোজ্য যখন প্যারামিটারের type string হয়)
স্ট্রিং

Regex string for validation of the parameter's user-configured value

Regex is compiled using the go library: RE2

For details about validation, refer to Validation and error messaging below.

validationErrorMessage
(ঐচ্ছিক)
স্ট্রিং

validationRegex ব্যর্থ হলে প্রদর্শন করতে ত্রুটি বার্তা

ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান।

default
(ঐচ্ছিক)
স্ট্রিং

প্যারামিটারের জন্য ডিফল্ট মান যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা ছেড়ে দেয়

যদি প্রযোজ্য হয় তবে আপনি default মানের জন্য একটি অটো-জনবহুল প্যারামিটার মান নির্দিষ্ট করতে পারেন (উদাহরণস্বরূপ, পুনরায় আকার চিত্রের এক্সটেনশনের IMG_BUCKET প্যারামিটারটি দেখুন)।

required
(ঐচ্ছিক)
বুলিয়ান

ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন তারা খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে

If required is omitted, this value defaults to true (that is, a required parameter).

immutable
(ঐচ্ছিক)
বুলিয়ান

ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে )

If immutable is omitted, this value defaults to false .

Note: If you define a "location" parameter for the deployed functions of your extension , then you should include this immutable field in its param object.

ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তাপ্রেরণ

যখন আপনি string এর type সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।

এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :

  • নির্দিষ্ট ডাটাবেস বা Cloud Storage বালতিটি ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
  • Whether the specified database path exists within the user's database

যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।

আমরা দৃ strongly ়ভাবে সুপারিশ করি যে আপনি এই প্রয়োজনীয়তাগুলি সম্পর্কে PREINSTALL ফাইলে ব্যবহারকারীদের অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশনটি ইনস্টল করে, এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশার মতো কাজ করে।

সিস্টেম পরামিতি

System parameters control the basic configuration of an extension's resources. Since they are meant to control resource configuration, they are not accessible as environment variables from within your function code.

You don't normally need to declare anything for these parameters in extension.yaml . এগুলি প্রতিটি এক্সটেনশন উদাহরণের জন্য স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা আপনার এক্সটেনশনটি ইনস্টল করার সময় কাস্টম মান নির্ধারণের সুযোগ পায়।

However, if your extension has special resource requirements, you can set specific values on a per-resource level in extension.yaml . These per-resource configuration settings will override the user's extension instance-wide settings. যেমন:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

উপলভ্য সিস্টেমের প্যারামগুলি হ'ল:

নাম লেবেল (মানব বন্ধুত্বপূর্ণ) properties সংশ্লিষ্ট ক্ষেত্র বর্ণনা
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/অবস্থান অবস্থান location কোন অঞ্চলে ক্লাউড ফাংশনগুলি স্থাপন করা উচিত?
ফায়ারব্যাসিএক্সটেনশনস.ভি 1 বিটা.ফানশন/মেমরি ফাংশন মেমরি memory প্রতিটি ফাংশনে কতগুলি মেগাবাইট মেমরি বরাদ্দ করা উচিত?
ফায়ারব্যাসিএক্সটেনশনস.ভি 1 বিটা.ফানশন/টাইমআউটসেকেন্ডস ফাংশন টাইমআউট timeout সময় শেষ হওয়ার আগে ফাংশনগুলি কত সেকেন্ড চালানো উচিত?
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ভিপিসি কনটোরগ্রেসসেসটিংস ভিপিসি সংযোগকারী এগ্রেস vpcConnectorEgressSettings ভিপিসি সংযোগকারী কনফিগার করা হলে বহির্গামী ট্র্যাফিক নিয়ন্ত্রণ করে
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ভিপিসকনেক্টর ভিপিসি সংযোগকারী vpcConnector নির্দিষ্ট ভিপিসি সংযোজকের সাথে ক্লাউড ফাংশনগুলিকে সংযুক্ত করে।
firebaseextensions.v1beta.function/minInstances ন্যূনতম ফাংশন দৃষ্টান্ত minInstances The minimum number of instances of this function to run at once
firebaseextensions.v1beta.function/maxInstances Maximum function instances maxInstances The maximum number of instances of this function to run at once
firebaseextensions.v1beta.function/ingressSettings ইনগ্রেস সেটিংস ingressSettings নিয়ন্ত্রণগুলি যেখানে আগত ট্র্যাফিক গ্রহণ করা হয়
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/লেবেল লেবেল labels এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷