पैरामीटर वह तंत्र है जिसके माध्यम से उपयोगकर्ता किसी एक्सटेंशन के प्रत्येक स्थापित इंस्टेंस को अनुकूलित करता है। पैरामीटर किसी एक्सटेंशन के लिए पर्यावरण चर की तरह होते हैं। पैरामीटर के मान या तो ऑटो-पॉप्युलेट किए जा सकते हैं (इंस्टॉलेशन के बाद फायरबेस द्वारा प्रदान किए गए) या उपयोगकर्ता-कॉन्फ़िगर किए गए (इंस्टॉलेशन के दौरान उपयोगकर्ता द्वारा निर्दिष्ट)।
ये पैरामीटर आपके एक्सटेंशन के फ़ंक्शंस स्रोत कोड, आपकी extension.yaml
फ़ाइल और आपकी POSTINSTALL.md
फ़ाइल में संदर्भ के लिए उपलब्ध हैं। PARAMETER_NAME
नामक पैरामीटर को संदर्भित करने का सिंटैक्स यहां दिया गया है:
अपने फ़ंक्शन स्रोत कोड के भीतर,
params
मॉड्यूल का उपयोग करें (उदाहरण के लिए,params.defineInt(" PARAMETER_NAME ")
) याprocess.env. PARAMETER_NAME
।extension.yaml
औरPOSTINSTALL.md
के भीतर,${param: PARAMETER_NAME }
का उपयोग करें।इंस्टॉलेशन के बाद, फायरबेस कंसोल
POSTINSTALL.md
फ़ाइल की सामग्री प्रदर्शित करता है और इंस्टॉल किए गए उदाहरण के लिए वास्तविक मानों के साथ किसी भी पैरामीटर संदर्भ को पॉप्युलेट करता है।
स्वतः-पॉप्युलेटेड पैरामीटर
एक्सटेंशन के प्रत्येक इंस्टॉल किए गए इंस्टेंस के पास स्वचालित रूप से फायरबेस द्वारा प्रदान किए गए कई डिफ़ॉल्ट ऑटो-पॉप्युलेटेड पैरामीटर तक पहुंच होती है (नीचे दी गई तालिका देखें)। ये पैरामीटर मान या तो फ़ायरबेस प्रोजेक्ट के लिए डिफ़ॉल्ट मान हैं ( डिफ़ॉल्ट स्टोरेज बकेट की तरह) या वे एक्सटेंशन-विशिष्ट हैं (एक्सटेंशन की इंस्टेंस आईडी की तरह)।
सभी ऑटो-पॉप्युलेटेड पैरामीटर मान अपरिवर्तनीय हैं। वे प्रोजेक्ट निर्माण या एक्सटेंशन इंस्टॉलेशन के समय सेट किए जाते हैं।
भले ही फ़ायरबेस एक्सटेंशन के लिए इन पैरामीटर मानों को स्वतः-पॉप्युलेट करता है, फ़ायरबेस इंस्टॉलेशन के दौरान उपयोगकर्ता के लिए संबंधित उत्पादों को स्वतः-प्रावधान नहीं करता है। एक्सटेंशन इंस्टॉल करने वाले उपयोगकर्ता को इंस्टॉलेशन से पहले अपने प्रोजेक्ट में संबंधित और लागू उत्पाद को सक्षम करना होगा। उदाहरण के लिए, यदि आपके एक्सटेंशन में क्लाउड फायरस्टोर शामिल है, तो उपयोगकर्ता को अपने प्रोजेक्ट में क्लाउड फायरस्टोर स्थापित करना होगा। हम अनुशंसा करते हैं कि आप अपने उपयोगकर्ताओं को PREINSTALL.md
फ़ाइल में इन आवश्यकताओं के बारे में सूचित करें।
ऑटो-पॉप्युलेटेड पैरामीटर के लिए संदर्भ | विवरण | पैरामीटर मान (फ़ायरबेस द्वारा प्रदान किया गया) |
---|---|---|
फ़ायरबेस प्रोजेक्ट से डिफ़ॉल्ट मान वाले पैरामीटर | ||
PROJECT_ID | फ़ायरबेस प्रोजेक्ट के लिए विशिष्ट पहचानकर्ता जिसमें एक्सटेंशन स्थापित है | सामान्यीकृत प्रारूप: उदाहरण मान: |
DATABASE_URL | फायरबेस प्रोजेक्ट का डिफ़ॉल्ट रीयलटाइम डेटाबेस इंस्टेंस URL | सामान्यीकृत प्रारूप: उदाहरण मान: |
DATABASE_INSTANCE | फायरबेस प्रोजेक्ट का डिफ़ॉल्ट रीयलटाइम डेटाबेस इंस्टेंस नाम आमतौर पर, यह मान प्रोजेक्ट आईडी के समान होता है, या | सामान्यीकृत प्रारूप: उदाहरण मान: |
STORAGE_BUCKET | फायरबेस प्रोजेक्ट का डिफ़ॉल्ट क्लाउड स्टोरेज बकेट नाम | सामान्यीकृत प्रारूप: उदाहरण मान: |
एक्सटेंशन इंस्टॉलेशन से डिफ़ॉल्ट मान वाला पैरामीटर | ||
EXT_INSTANCE_ID | स्थापित एक्सटेंशन इंस्टेंस के लिए विशिष्ट पहचानकर्ता यह मान | पहले स्थापित इंस्टेंस के लिए सामान्यीकृत प्रारूप (फ़ायरबेस द्वारा स्वचालित रूप से असाइन किया गया; इंस्टॉलेशन के दौरान उपयोगकर्ता द्वारा संशोधित नहीं किया जा सकता): उदाहरण मान: दूसरे-इंस्टॉल किए गए इंस्टेंस और उससे ऊपर के लिए सामान्यीकृत प्रारूप (फ़ायरबेस द्वारा स्वचालित रूप से असाइन किया गया; इंस्टॉलेशन के दौरान उपयोगकर्ता द्वारा संशोधित किया जा सकता है ): उदाहरण मान: |
उपयोगकर्ता द्वारा कॉन्फ़िगर किए गए पैरामीटर
किसी उपयोगकर्ता को एक्सटेंशन के प्रत्येक स्थापित इंस्टेंस को अनुकूलित करने में सक्षम बनाने के लिए, आप उपयोगकर्ता से इंस्टॉलेशन के दौरान पैरामीटर मान निर्दिष्ट करने के लिए कह सकते हैं। इन मानों का अनुरोध करने के लिए, आप अपनी 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 है तो आवश्यक है) | सूची | उन मानों की सूची जिनमें से उपयोगकर्ता चयन कर सकता है
| ||||
resourceType (यदि पैरामीटर type selectResource है तो आवश्यक है) | डोरी | उपयोगकर्ता को चयन करने के लिए संकेत देने के लिए फायरबेस संसाधन का प्रकार। वर्तमान में, केवल क्लाउड स्टोरेज बकेट ही संसाधन चयनकर्ताओं का समर्थन करते हैं:
अज्ञात | ||||
example (वैकल्पिक) | डोरी | पैरामीटर के लिए उदाहरण मान | ||||
validationRegex (वैकल्पिक) (केवल तभी लागू होता है जब पैरामीटर type string हो) | डोरी | पैरामीटर के उपयोगकर्ता-कॉन्फ़िगर मान के सत्यापन के लिए रेगेक्स स्ट्रिंग रेगेक्स को गो लाइब्रेरी का उपयोग करके संकलित किया गया है: RE2 सत्यापन के बारे में विवरण के लिए, नीचे सत्यापन और त्रुटि संदेश देखें। | ||||
validationErrorMessage (वैकल्पिक) | डोरी | यदि त्रुटि संदेश के बारे में विवरण के लिए, नीचे सत्यापन और त्रुटि संदेश देखें। | ||||
default (वैकल्पिक) | डोरी | यदि उपयोगकर्ता पैरामीटर का मान खाली छोड़ देता है तो पैरामीटर के लिए डिफ़ॉल्ट मान यदि लागू हो, तो आप | ||||
required (वैकल्पिक) | बूलियन | परिभाषित करता है कि पैरामीटर के मान के लिए संकेत मिलने पर उपयोगकर्ता एक खाली स्ट्रिंग सबमिट कर सकता है या नहीं यदि | ||||
immutable (वैकल्पिक) | बूलियन | परिभाषित करता है कि क्या उपयोगकर्ता इंस्टॉलेशन के बाद पैरामीटर का मान बदल सकता है (उदाहरण के लिए, यदि वे एक्सटेंशन को पुन: कॉन्फ़िगर करते हैं ) यदि नोट: यदि आप अपने एक्सटेंशन के तैनात कार्यों के लिए "स्थान" पैरामीटर को परिभाषित करते हैं, तो आपको इस |
उपयोगकर्ता द्वारा कॉन्फ़िगर किए गए मानों के लिए सत्यापन और त्रुटि संदेश
जब आप string
के type
के साथ एक पैरामीटर सेट करते हैं, तो आपको पैरामीटर के validationRegex
फ़ील्ड के माध्यम से उचित रेगेक्स सत्यापन को परिभाषित करने की आवश्यकता होती है।
साथ ही, कई एक्सटेंशन के लिए, आमतौर पर अनुरोधित पैरामीटर मान डेटाबेस पथ या क्लाउड स्टोरेज बकेट है। ध्यान रखें कि इंस्टॉल, पुन: कॉन्फ़िगर या अपडेट के दौरान, एक्सटेंशन सेवा पैरामीटर मान प्रविष्टि के समय निम्नलिखित को मान्य नहीं करती है:
- क्या निर्दिष्ट डेटाबेस या क्लाउड स्टोरेज बकेट उपयोगकर्ता के फायरबेस प्रोजेक्ट के भीतर स्थापित किया गया है
- क्या निर्दिष्ट डेटाबेस पथ उपयोगकर्ता के डेटाबेस में मौजूद है
हालाँकि, जब एक्सटेंशन वास्तव में अपने संसाधनों को तैनात कर रहा होता है, तो यदि संदर्भित डेटाबेस या क्लाउड स्टोरेज बकेट अभी तक प्रोजेक्ट में सेट नहीं किया गया है, तो फायरबेस कंसोल या फायरबेस सीएलआई एक त्रुटि संदेश प्रदर्शित करेगा।
हम दृढ़तापूर्वक अनुशंसा करते हैं कि आप इन आवश्यकताओं के बारे में 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 | वीपीसी कनेक्टर कॉन्फ़िगर होने पर आउटगोइंग ट्रैफ़िक को नियंत्रित करता है |
firebaseextensions.v1beta.function/vpcConnector | वीपीसी कनेक्टर | vpcConnector | क्लाउड फ़ंक्शंस को निर्दिष्ट वीपीसी कनेक्टर से जोड़ता है। |
firebaseextensions.v1beta.function/minInstances | न्यूनतम फ़ंक्शन उदाहरण | minInstances | एक बार में चलने के लिए इस फ़ंक्शन के इंस्टेंस की न्यूनतम संख्या |
firebaseextensions.v1beta.function/maxInstances | अधिकतम फ़ंक्शन उदाहरण | maxInstances | एक बार में चलने के लिए इस फ़ंक्शन के इंस्टेंस की अधिकतम संख्या |
firebaseextensions.v1beta.function/ingressSettings | प्रवेश सेटिंग्स | ingressSettings | नियंत्रित करता है कि आने वाला ट्रैफ़िक कहाँ से स्वीकार किया जाता है |
firebaseextensions.v1beta.function/labels | लेबल | labels | एक्सटेंशन में सभी संसाधनों पर लागू होने वाले लेबल |