প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।
এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml
ফাইল এবং আপনার POSTINSTALL.md
ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME
নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:
আপনার ফাংশন সোর্স কোডের মধ্যে,
params
মডিউল ব্যবহার করুন (উদাহরণস্বরূপ,params.defineInt(" PARAMETER_NAME ")
) বাprocess.env. PARAMETER_NAME
extension.yaml
এবংPOSTINSTALL.md
মধ্যে${param: PARAMETER_NAME }
ব্যবহার করুন।ইনস্টলেশনের পরে, Firebase কনসোল
POSTINSTALL.md
ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।
স্বয়ংক্রিয় জনবহুল পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।
সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।
যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md
ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।
স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স | বর্ণনা | পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত) |
---|---|---|
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি | ||
PROJECT_ID | Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_URL | Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_INSTANCE | Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা | সাধারণ বিন্যাস: উদাহরণ মান: |
STORAGE_BUCKET | Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম | সাধারণ বিন্যাস:
|
এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার | ||
EXT_INSTANCE_ID | ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী এই মানটি | 1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ): উদাহরণ মান: ২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ): উদাহরণ মান: |
ব্যবহারকারী-কনফিগার করা পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার 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 (প্রয়োজনীয়) | স্ট্রিং | প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় | ||||
description (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য বিশদ বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় মার্কডাউন সমর্থন করে | ||||
type (ঐচ্ছিক) | স্ট্রিং | ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন) বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:
যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি | ||||
options (প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়) | তালিকা | মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন
উদাহরণ সিনট্যাক্স options: - label: value: - label: value: - label: value: | ||||
resourceType (প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়) | স্ট্রিং | Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:
অজানা | ||||
example (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য উদাহরণ মান | ||||
validationRegex (ঐচ্ছিক) (শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়) | স্ট্রিং | প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2 বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন। | ||||
validationErrorMessage (ঐচ্ছিক) | স্ট্রিং | ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান। | ||||
default (ঐচ্ছিক) | স্ট্রিং | যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান যদি প্রযোজ্য হয়, আপনি | ||||
required (ঐচ্ছিক) | বুলিয়ান | প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে | ||||
immutable (ঐচ্ছিক) | বুলিয়ান | ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে ) যদি দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই |
ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা
যখন আপনি string
এর type
সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex
ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।
এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :
- নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
- ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা
যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।
আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL
ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷
সিস্টেম পরামিতি
সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।
extension.yaml
এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷
যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml
এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:
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 সংশ্লিষ্ট ক্ষেত্র | বর্ণনা |
---|---|---|---|
firebaseextensions.v1beta.function/location | অবস্থান | location | ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত? |
firebaseextensions.v1beta.function/memory | ফাংশন মেমরি | memory | প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত? |
firebaseextensions.v1beta.function/timeoutSeconds | ফাংশন টাইমআউট | timeout | সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | ভিপিসি সংযোগকারী এগ্রেস | vpcConnectorEgressSettings | একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/vpcConnector | ভিপিসি সংযোগকারী | vpcConnector | ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷ |
firebaseextensions.v1beta.function/minInstances | ন্যূনতম ফাংশন দৃষ্টান্ত | minInstances | একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/maxInstances | সর্বাধিক ফাংশন দৃষ্টান্ত | maxInstances | একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/ingressSettings | প্রবেশের সেটিংস | ingressSettings | যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/labels | লেবেল | labels | এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷ |
প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।
এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml
ফাইল এবং আপনার POSTINSTALL.md
ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME
নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:
আপনার ফাংশন সোর্স কোডের মধ্যে,
params
মডিউল ব্যবহার করুন (উদাহরণস্বরূপ,params.defineInt(" PARAMETER_NAME ")
) বাprocess.env. PARAMETER_NAME
extension.yaml
এবংPOSTINSTALL.md
মধ্যে${param: PARAMETER_NAME }
ব্যবহার করুন।ইনস্টলেশনের পরে, Firebase কনসোল
POSTINSTALL.md
ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।
স্বয়ংক্রিয় জনবহুল পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।
সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।
যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md
ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।
স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স | বর্ণনা | পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত) |
---|---|---|
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি | ||
PROJECT_ID | Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_URL | Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_INSTANCE | Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা | সাধারণ বিন্যাস: উদাহরণ মান: |
STORAGE_BUCKET | Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম | সাধারণ বিন্যাস:
|
এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার | ||
EXT_INSTANCE_ID | ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী এই মানটি | 1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ): উদাহরণ মান: ২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ): উদাহরণ মান: |
ব্যবহারকারী-কনফিগার করা পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার 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 (প্রয়োজনীয়) | স্ট্রিং | প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় | ||||
description (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য বিশদ বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় মার্কডাউন সমর্থন করে | ||||
type (ঐচ্ছিক) | স্ট্রিং | ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন) বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:
যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি | ||||
options (প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়) | তালিকা | মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন
উদাহরণ সিনট্যাক্স options: - label: value: - label: value: - label: value: | ||||
resourceType (প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়) | স্ট্রিং | Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:
অজানা | ||||
example (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য উদাহরণ মান | ||||
validationRegex (ঐচ্ছিক) (শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়) | স্ট্রিং | প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2 বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন। | ||||
validationErrorMessage (ঐচ্ছিক) | স্ট্রিং | ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান। | ||||
default (ঐচ্ছিক) | স্ট্রিং | যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান যদি প্রযোজ্য হয়, আপনি | ||||
required (ঐচ্ছিক) | বুলিয়ান | প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে | ||||
immutable (ঐচ্ছিক) | বুলিয়ান | ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে ) যদি দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই |
ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা
যখন আপনি string
এর type
সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex
ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।
এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :
- নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
- ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা
যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।
আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL
ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷
সিস্টেম পরামিতি
সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।
extension.yaml
এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷
যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml
এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:
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 সংশ্লিষ্ট ক্ষেত্র | বর্ণনা |
---|---|---|---|
firebaseextensions.v1beta.function/location | অবস্থান | location | ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত? |
firebaseextensions.v1beta.function/memory | ফাংশন মেমরি | memory | প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত? |
firebaseextensions.v1beta.function/timeoutSeconds | ফাংশন টাইমআউট | timeout | সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | ভিপিসি সংযোগকারী এগ্রেস | vpcConnectorEgressSettings | একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/vpcConnector | ভিপিসি সংযোগকারী | vpcConnector | ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷ |
firebaseextensions.v1beta.function/minInstances | ন্যূনতম ফাংশন দৃষ্টান্ত | minInstances | একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/maxInstances | সর্বাধিক ফাংশন দৃষ্টান্ত | maxInstances | একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/ingressSettings | প্রবেশের সেটিংস | ingressSettings | যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/labels | লেবেল | labels | এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷ |
প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। পরামিতিগুলির মানগুলি হয় স্বয়ংক্রিয়ভাবে জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইন্সটলেশনের সময় ব্যবহারকারী দ্বারা নির্দিষ্ট) হতে পারে।
এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন সোর্স কোড, আপনার extension.yaml
ফাইল এবং আপনার POSTINSTALL.md
ফাইলে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME
নামক একটি প্যারামিটারকে কীভাবে উল্লেখ করা যায় তার জন্য এখানে সিনট্যাক্স রয়েছে:
আপনার ফাংশন সোর্স কোডের মধ্যে,
params
মডিউল ব্যবহার করুন (উদাহরণস্বরূপ,params.defineInt(" PARAMETER_NAME ")
) বাprocess.env. PARAMETER_NAME
extension.yaml
এবংPOSTINSTALL.md
মধ্যে${param: PARAMETER_NAME }
ব্যবহার করুন।ইনস্টলেশনের পরে, Firebase কনসোল
POSTINSTALL.md
ফাইলের বিষয়বস্তু প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মান সহ যেকোনো পরামিতি রেফারেন্স পূরণ করে।
স্বয়ংক্রিয় জনবহুল পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা দৃষ্টান্তের স্বয়ংক্রিয়ভাবে Firebase দ্বারা প্রদত্ত বেশ কয়েকটি ডিফল্ট স্বয়ংক্রিয়-পপুলেট প্যারামিটারে অ্যাক্সেস থাকে (নীচের টেবিলটি পড়ুন)। এই প্যারামিটার মানগুলি হয় Firebase প্রকল্পের জন্য ডিফল্ট মান (যেমন ডিফল্ট স্টোরেজ বাকেট) অথবা এগুলি এক্সটেনশন-নির্দিষ্ট (যেমন এক্সটেনশনের ইনস্ট্যান্স আইডি)।
সমস্ত স্বয়ংক্রিয়-জনবহুল পরামিতি মান অপরিবর্তনীয়। এগুলি প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশনের সময় সেট করা হয়।
যদিও Firebase এক্সটেনশনের জন্য এই পরামিতি মানগুলিকে স্বয়ংক্রিয়ভাবে পপুলেট করে, Firebase ইনস্টলেশনের সময় ব্যবহারকারীর জন্য সংশ্লিষ্ট পণ্যগুলিকে স্বয়ংক্রিয়ভাবে প্রদান করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারীকে অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সংশ্লিষ্ট এবং প্রযোজ্য পণ্য(গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Cloud Firestore সাথে জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা PREINSTALL.md
ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে আপনার ব্যবহারকারীদের অবহিত করার পরামর্শ দিই।
স্বয়ংক্রিয় জনবহুল পরামিতির জন্য রেফারেন্স | বর্ণনা | পরামিতি মান (ফায়ারবেস দ্বারা সরবরাহিত) |
---|---|---|
Firebase প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি | ||
PROJECT_ID | Firebase প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_URL | Firebase প্রকল্পের ডিফল্ট Realtime Database ইনস্ট্যান্স URL | সাধারণ বিন্যাস: উদাহরণ মান: |
DATABASE_INSTANCE | Firebase প্রকল্পের ডিফল্ট Realtime Database উদাহরণের নাম সাধারণত, এই মানটি প্রজেক্ট আইডির মতই হয়, অথবা | সাধারণ বিন্যাস: উদাহরণ মান: |
STORAGE_BUCKET | Firebase প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বাকেটের নাম | সাধারণ বিন্যাস:
|
এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার | ||
EXT_INSTANCE_ID | ইনস্টল করা এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী এই মানটি | 1ম ইনস্টল করা উদাহরণের জন্য সাধারণ বিন্যাস (Firebase দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত করা যাবে না ): উদাহরণ মান: ২য়-ইন্সটল করা দৃষ্টান্তের জন্য সাধারণীকৃত বিন্যাস এবং তার উপরে (Firebase দ্বারা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে; ইনস্টলেশনের সময় ব্যবহারকারী-সংশোধিত হতে পারে ): উদাহরণ মান: |
ব্যবহারকারী-কনফিগার করা পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে একজন ব্যবহারকারীকে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশনের সময় পরামিতি মান নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির অনুরোধ করার জন্য, আপনি আপনার 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 (প্রয়োজনীয়) | স্ট্রিং | প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় | ||||
description (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য বিশদ বিবরণ যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয় মার্কডাউন সমর্থন করে | ||||
type (ঐচ্ছিক) | স্ট্রিং | ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য লিখুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন) বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:
যদি এই ক্ষেত্রটি বাদ দেওয়া হয়, তাহলে প্যারামিটারটি | ||||
options (প্রয়োজনীয় যদি পরামিতি type select বা multiSelect হয়) | তালিকা | মানের তালিকা যা থেকে ব্যবহারকারী নির্বাচন করতে পারেন
উদাহরণ সিনট্যাক্স options: - label: value: - label: value: - label: value: | ||||
resourceType (প্রয়োজনীয় যদি প্যারামিটারের type selectResource হয়) | স্ট্রিং | Firebase রিসোর্সের ধরন যা ব্যবহারকারীকে নির্বাচন করতে প্রম্পট করে। বর্তমানে, শুধুমাত্র Cloud Storage বালতি সম্পদ নির্বাচকদের সমর্থন করে:
অজানা | ||||
example (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য উদাহরণ মান | ||||
validationRegex (ঐচ্ছিক) (শুধুমাত্র প্রযোজ্য যখন প্যারামিটার type string হয়) | স্ট্রিং | প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য Regex স্ট্রিং রেজেক্স গো লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: RE2 বৈধতা সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পড়ুন। | ||||
validationErrorMessage (ঐচ্ছিক) | স্ট্রিং | ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদ বিবরণের জন্য, নীচের বৈধতা এবং ত্রুটি বার্তা পাঠান। | ||||
default (ঐচ্ছিক) | স্ট্রিং | যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান যদি প্রযোজ্য হয়, আপনি | ||||
required (ঐচ্ছিক) | বুলিয়ান | প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে | ||||
immutable (ঐচ্ছিক) | বুলিয়ান | ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে ) যদি দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের নিয়োজিত ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে আপনার এই |
ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তা
যখন আপনি string
এর type
সাথে একটি প্যারামিটার সেট আপ করেন, তখন আপনাকে প্যারামিটারের validationRegex
ক্ষেত্রের মাধ্যমে উপযুক্ত রেজেক্স বৈধতা নির্ধারণ করতে হবে।
এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হল একটি ডাটাবেস পাথ বা Cloud Storage বাকেট। সচেতন থাকুন যে ইনস্টল, পুনরায় কনফিগার বা আপডেট করার সময়, Extensions পরিষেবা প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলিকে যাচাই করে না :
- নির্দিষ্ট ডাটাবেস বা Cloud Storage বাকেট ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
- ব্যবহারকারীর ডাটাবেসের মধ্যে নির্দিষ্ট ডাটাবেস পাথ বিদ্যমান কিনা
যাইহোক, যখন এক্সটেনশনটি প্রকৃতপক্ষে তার সংস্থানগুলি স্থাপন করছে, তখন Firebase কনসোল বা Firebase CLI একটি ত্রুটি বার্তা প্রদর্শন করবে যদি প্রজেক্টে রেফারেন্সকৃত ডাটাবেস বা Cloud Storage বাকেটটি এখনও সেট আপ না করা হয়।
আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি PREINSTALL
ফাইলে ব্যবহারকারীদের এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশন ইনস্টল করে, তখন এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশা অনুযায়ী কাজ করে৷
সিস্টেম পরামিতি
সিস্টেম প্যারামিটারগুলি একটি এক্সটেনশনের সংস্থানগুলির মৌলিক কনফিগারেশন নিয়ন্ত্রণ করে৷ যেহেতু তারা রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, সেগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশ ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।
extension.yaml
এ এই প্যারামিটারগুলির জন্য আপনাকে সাধারণত কিছু ঘোষণা করতে হবে না। প্রতিটি এক্সটেনশন উদাহরণের জন্য সেগুলি স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা যখন আপনার এক্সটেনশন ইনস্টল করেন তখন তাদের কাস্টম মান সেট করার সুযোগ থাকে৷
যাইহোক, যদি আপনার এক্সটেনশনের বিশেষ সম্পদের প্রয়োজনীয়তা থাকে, তাহলে আপনি extension.yaml
এ প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-সম্পদ কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন ইনস্ট্যান্স-ওয়াইড সেটিংসকে ওভাররাইড করবে। যেমন:
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 সংশ্লিষ্ট ক্ষেত্র | বর্ণনা |
---|---|---|---|
firebaseextensions.v1beta.function/location | অবস্থান | location | ক্লাউড ফাংশনগুলি কোন অঞ্চলে স্থাপন করা উচিত? |
firebaseextensions.v1beta.function/memory | ফাংশন মেমরি | memory | প্রতিটি ফাংশনের জন্য কত মেগাবাইট মেমরি বরাদ্দ করা উচিত? |
firebaseextensions.v1beta.function/timeoutSeconds | ফাংশন টাইমআউট | timeout | সময় শেষ হওয়ার আগে কত সেকেন্ড ফাংশন চালানো উচিত? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | ভিপিসি সংযোগকারী এগ্রেস | vpcConnectorEgressSettings | একটি VPC সংযোগকারী কনফিগার করা হলে বহির্গামী ট্রাফিক নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/vpcConnector | ভিপিসি সংযোগকারী | vpcConnector | ক্লাউড ফাংশনগুলিকে নির্দিষ্ট VPC সংযোগকারীর সাথে সংযুক্ত করে৷ |
firebaseextensions.v1beta.function/minInstances | ন্যূনতম ফাংশন দৃষ্টান্ত | minInstances | একবারে চালানোর জন্য এই ফাংশনের ন্যূনতম সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/maxInstances | সর্বাধিক ফাংশন দৃষ্টান্ত | maxInstances | একবারে চালানোর জন্য এই ফাংশনের সর্বোচ্চ সংখ্যক দৃষ্টান্ত |
firebaseextensions.v1beta.function/ingressSettings | প্রবেশের সেটিংস | ingressSettings | যেখান থেকে ইনকামিং ট্রাফিক গ্রহণ করা হয় তা নিয়ন্ত্রণ করে |
firebaseextensions.v1beta.function/labels | লেবেল | labels | এক্সটেনশনের সমস্ত সংস্থানে প্রযোজ্য লেবেল৷ |
প্যারামিটার হল এমন একটি প্রক্রিয়া যার মাধ্যমে একজন ব্যবহারকারী একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করে। প্যারামিটারগুলি একটি এক্সটেনশনের জন্য পরিবেশের ভেরিয়েবলের মতো। প্যারামিটারগুলির মানগুলি হয় স্বয়ংক্রিয়-জনবহুল (ইনস্টলেশনের পরে ফায়ারবেস দ্বারা সরবরাহ করা) বা ব্যবহারকারী-কনফিগার করা (ইনস্টলেশন চলাকালীন ব্যবহারকারী দ্বারা নির্দিষ্ট) করা যেতে পারে।
এই প্যারামিটারগুলি আপনার এক্সটেনশনের ফাংশন উত্স কোড, আপনার extension.yaml
ফাইল এবং আপনার POSTINSTALL.md
ফাইলটিতে উল্লেখ করার জন্য উপলব্ধ। PARAMETER_NAME
নামক প্যারামিটারটি কীভাবে রেফারেন্স করবেন তার সিনট্যাক্স এখানে:
আপনার ফাংশন উত্স কোডের মধ্যে,
params
মডিউল (উদাহরণস্বরূপ,params.defineInt(" PARAMETER_NAME ")
) বাprocess.env. PARAMETER_NAME
।extension.yaml
এবংPOSTINSTALL.md
মধ্যে,${param: PARAMETER_NAME }
ব্যবহার করুন}ইনস্টলেশনের পরে, Firebase কনসোলটি
POSTINSTALL.md
ফাইলের সামগ্রীগুলি প্রদর্শন করে এবং ইনস্টল করা উদাহরণের জন্য প্রকৃত মানগুলির সাথে কোনও প্যারামিটার রেফারেন্সকে পপুলেট করে।
অটো-জনবহুল পরামিতি
একটি এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ স্বয়ংক্রিয়ভাবে ফায়ারবেস দ্বারা সরবরাহিত বেশ কয়েকটি ডিফল্ট অটো-জনবহুল পরামিতিগুলিতে অ্যাক্সেস থাকে (নীচের সারণীটি দেখুন)। এই প্যারামিটার মানগুলি হয় ফায়ারবেস প্রকল্পের জন্য ডিফল্ট মান ( ডিফল্ট স্টোরেজ বালতিটির মতো) বা তারা এক্সটেনশন-নির্দিষ্ট (এক্সটেনশনের উদাহরণ আইডির মতো)।
সমস্ত অটো-জনবহুল প্যারামিটার মানগুলি অপরিবর্তনীয়। তারা প্রকল্প তৈরি বা এক্সটেনশন ইনস্টলেশন সময় সেট করা হয়।
যদিও ফায়ারবেস এক্সটেনশনের জন্য এই প্যারামিটার মানগুলি অটো-পপুলেট করে, ফায়ারবেস ইনস্টলেশন চলাকালীন ব্যবহারকারীর জন্য সম্পর্কিত পণ্যগুলিকে স্বতঃ-সরবরাহ করে না । এক্সটেনশন ইনস্টল করা ব্যবহারকারী অবশ্যই ইনস্টলেশনের আগে তাদের প্রকল্পে সম্পর্কিত এবং প্রযোজ্য পণ্য (গুলি) সক্ষম করতে হবে। উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনে Cloud Firestore জড়িত থাকে তবে ব্যবহারকারীকে অবশ্যই তাদের প্রকল্পে Cloud Firestore সেট আপ করতে হবে। আমরা আপনার ব্যবহারকারীদের PREINSTALL.md
ফাইলে এই প্রয়োজনীয়তাগুলি সম্পর্কে অবহিত করার পরামর্শ দিই।
অটো-জনবহুল প্যারামিটারের জন্য রেফারেন্স | বর্ণনা | প্যারামিটার মান (ফায়ারবেস দ্বারা সরবরাহ করা) |
---|---|---|
ফায়ারবেস প্রকল্প থেকে ডিফল্ট মান সহ পরামিতি | ||
PROJECT_ID | ফায়ারবেস প্রকল্পের জন্য অনন্য শনাক্তকারী যেখানে এক্সটেনশন ইনস্টল করা আছে | সাধারণীকরণ ফর্ম্যাট: উদাহরণ মান: |
DATABASE_URL | ফায়ারবেস প্রকল্পের ডিফল্ট Realtime Database উদাহরণ ইউআরএল | সাধারণীকরণ ফর্ম্যাট: উদাহরণ মান: |
DATABASE_INSTANCE | ফায়ারবেস প্রকল্পের ডিফল্ট Realtime Database উদাহরণ নাম সাধারণত, এই মানটি প্রজেক্ট আইডির সমান, বা | সাধারণীকরণ ফর্ম্যাট: উদাহরণ মান: |
STORAGE_BUCKET | ফায়ারবেস প্রকল্পের ডিফল্ট ক্লাউড স্টোরেজ বালতি নাম | সাধারণীকরণ ফর্ম্যাট:
|
এক্সটেনশন ইনস্টলেশন থেকে ডিফল্ট মান সহ প্যারামিটার | ||
EXT_INSTANCE_ID | ইনস্টল এক্সটেনশন উদাহরণের জন্য অনন্য শনাক্তকারী এই মানটি | 1 ম ইনস্টলড উদাহরণের জন্য সাধারণ ফর্ম্যাট (ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশন চলাকালীন ব্যবহারকারী-সংশোধন করা যায় না ): উদাহরণ মান: ২ য়-ইনস্টলড উদাহরণ এবং তারপরে সাধারণ ফর্ম্যাট (ফায়ারবেস দ্বারা স্বয়ংক্রিয়ভাবে নির্ধারিত; ইনস্টলেশন চলাকালীন ব্যবহারকারী-সংশোধিত হতে পারে ): উদাহরণ মান: |
ব্যবহারকারী-কনফিগার করা পরামিতি
কোনও ব্যবহারকারীকে কোনও এক্সটেনশনের প্রতিটি ইনস্টল করা উদাহরণ কাস্টমাইজ করতে সক্ষম করতে, আপনি ব্যবহারকারীকে ইনস্টলেশন চলাকালীন প্যারামিটারের মানগুলি নির্দিষ্ট করতে বলতে পারেন। এই মানগুলির জন্য অনুরোধ করার জন্য, আপনি আপনার 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 (প্রয়োজনীয়) | স্ট্রিং | প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন প্রদর্শিত হয় | ||||
description (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য বিশদ বিবরণ ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন প্রদর্শিত হয় মার্কডাউন সমর্থন করে | ||||
type (ঐচ্ছিক) | স্ট্রিং | ব্যবহারকারী কীভাবে প্যারামিটারের মান সেট করে তার জন্য ইনপুট প্রক্রিয়া (উদাহরণস্বরূপ, সরাসরি পাঠ্য প্রবেশ করুন বা ড্রপডাউন তালিকা থেকে নির্বাচন করুন) বৈধ মান নিম্নলিখিত অন্তর্ভুক্ত:
যদি এই ক্ষেত্রটি বাদ দেওয়া হয় তবে প্যারামিটারটি | ||||
options (যদি প্যারামিটারের type select বা multiSelect হয় তবে প্রয়োজনীয়) | তালিকা | যে মানগুলি থেকে ব্যবহারকারী নির্বাচন করতে পারেন তার তালিকা
উদাহরণ সিনট্যাক্স options: - label: value: - label: value: - label: value: | ||||
resourceType (যদি প্যারামিটারের type selectResource হয় তবে প্রয়োজনীয়) | স্ট্রিং | ব্যবহারকারীকে নির্বাচন করতে অনুরোধ জানাতে ফায়ারবেস রিসোর্সের ধরণ। বর্তমানে, কেবল Cloud Storage বালতিগুলি রিসোর্স নির্বাচকদের সমর্থন করে:
অজানা | ||||
example (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য উদাহরণ মান | ||||
validationRegex (ঐচ্ছিক) (কেবল তখনই প্রযোজ্য যখন প্যারামিটারের type string হয়) | স্ট্রিং | প্যারামিটারের ব্যবহারকারী-কনফিগার করা মানের বৈধতার জন্য রেজেক্স স্ট্রিং রেজেক্স জিও লাইব্রেরি ব্যবহার করে সংকলিত হয়েছে: আরই 2 বৈধতা সম্পর্কে বিশদগুলির জন্য, নীচে বৈধতা এবং ত্রুটি বার্তাগুলি দেখুন। | ||||
validationErrorMessage (ঐচ্ছিক) | স্ট্রিং | ত্রুটি বার্তাপ্রেরণ সম্পর্কে বিশদের জন্য, নীচে বৈধতা এবং ত্রুটি বার্তাগুলি দেখুন। | ||||
default (ঐচ্ছিক) | স্ট্রিং | প্যারামিটারের জন্য ডিফল্ট মান যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা ছেড়ে দেয় যদি প্রযোজ্য হয় তবে আপনি | ||||
required (ঐচ্ছিক) | বুলিয়ান | ব্যবহারকারী যখন প্যারামিটারের মানের জন্য অনুরোধ জানানো হয় তখন তারা খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে যদি | ||||
immutable (ঐচ্ছিক) | বুলিয়ান | ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (উদাহরণস্বরূপ, যদি তারা এক্সটেনশনটি পুনরায় কনফিগার করে ) যদি দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের মোতায়েন করা ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটারটি সংজ্ঞায়িত করেন তবে আপনার এই |
ব্যবহারকারী-কনফিগার করা মানগুলির জন্য বৈধতা এবং ত্রুটি বার্তাপ্রেরণ
আপনি যখন string
type
সহ একটি প্যারামিটার সেট আপ করেন, আপনাকে প্যারামিটারের validationRegex
ক্ষেত্রের মাধ্যমে উপযুক্ত Regex বৈধতা সংজ্ঞায়িত করতে হবে।
এছাড়াও, অনেক এক্সটেনশনের জন্য, একটি সাধারণভাবে অনুরোধ করা প্যারামিটার মান হ'ল একটি ডাটাবেস পাথ বা Cloud Storage বালতি। সচেতন হন যে ইনস্টল, পুনর্গঠন বা আপডেটের সময় Extensions পরিষেবাটি প্যারামিটার মান প্রবেশের সময় নিম্নলিখিতগুলি বৈধ করে না :
- নির্দিষ্ট ডাটাবেস বা Cloud Storage বালতিটি ব্যবহারকারীর ফায়ারবেস প্রকল্পের মধ্যে সেট আপ করা আছে কিনা
- নির্দিষ্ট ডাটাবেস পাথ ব্যবহারকারীর ডাটাবেসের মধ্যে বিদ্যমান কিনা
যাইহোক, যখন এক্সটেনশনটি আসলে তার সংস্থানগুলি স্থাপন করে, Firebase কনসোল বা Firebase সিএলআই যদি রেফারেন্সযুক্ত ডাটাবেস বা Cloud Storage বালতিটি এখনও প্রকল্পে সেট আপ না করা হয় তবে একটি ত্রুটি বার্তা প্রদর্শন করবে।
আমরা দৃ strongly ়ভাবে সুপারিশ করি যে আপনি এই প্রয়োজনীয়তাগুলি সম্পর্কে PREINSTALL
ফাইলে ব্যবহারকারীদের অবহিত করুন যাতে তারা যখন আপনার এক্সটেনশনটি ইনস্টল করে, এটি সফলভাবে ইনস্টল করে এবং প্রত্যাশার মতো কাজ করে।
সিস্টেম পরামিতি
সিস্টেম পরামিতিগুলি একটি এক্সটেনশনের সংস্থানগুলির প্রাথমিক কনফিগারেশন নিয়ন্ত্রণ করে। যেহেতু এগুলি রিসোর্স কনফিগারেশন নিয়ন্ত্রণ করার জন্য বোঝানো হয়েছে, তাই এগুলি আপনার ফাংশন কোডের মধ্যে থেকে পরিবেশের ভেরিয়েবল হিসাবে অ্যাক্সেসযোগ্য নয়।
extension.yaml
আপনাকে সাধারণত এই পরামিতিগুলির জন্য কিছু ঘোষণা করার প্রয়োজন হয় না y আইএএমএল। এগুলি প্রতিটি এক্সটেনশন উদাহরণের জন্য স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত করা হয় এবং ব্যবহারকারীরা আপনার এক্সটেনশনটি ইনস্টল করার সময় কাস্টম মান নির্ধারণের সুযোগ পায়।
তবে, যদি আপনার এক্সটেনশনে বিশেষ সংস্থান প্রয়োজনীয়তা থাকে তবে আপনি extension.yaml
প্রতি-রিসোর্স স্তরে নির্দিষ্ট মান সেট করতে পারেন। এই প্রতি-রিসোর্স কনফিগারেশন সেটিংস ব্যবহারকারীর এক্সটেনশন উদাহরণ-বিস্তৃত সেটিংসকে ওভাররাইড করবে। যেমন:
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 | নির্দিষ্ট ভিপিসি সংযোজকের সাথে ক্লাউড ফাংশনগুলিকে সংযুক্ত করে। |
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/মিনিনস্ট্যান্স | ন্যূনতম ফাংশন উদাহরণ | minInstances | এই ফাংশনের ন্যূনতম সংখ্যা একবারে চালানোর জন্য |
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ম্যাক্সিনস্ট্যান্স | সর্বাধিক ফাংশন উদাহরণ | maxInstances | এই ফাংশনের সর্বাধিক সংখ্যা একবারে চালানোর জন্য |
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/ইনগ্রেসসটিংস | ইনগ্রেস সেটিংস | ingressSettings | নিয়ন্ত্রণগুলি যেখানে আগত ট্র্যাফিক গ্রহণ করা হয় |
ফায়ারব্যাসিেক্সটেনশনস.ভি 1 বিটা.ফানশন/লেবেল | লেবেল | labels | এক্সটেনশনে সমস্ত সংস্থানগুলিতে প্রয়োগ করার জন্য লেবেলগুলি |