פרמטרים הם המנגנון שבו משתמשים מבצעים התאמה אישית של כל מופע מותקן של תוסף. הפרמטרים הם כמו משתני הסביבה של התוסף. הערכים של הפרמטרים יכולים להיות מאוכלסים באופן אוטומטי (המערכת של Firebase מספקת אותם אחרי ההתקנה) או מוגדרים על ידי המשתמש (המשתמשים מציינים אותם במהלך ההתקנה).
אפשר להפנות לפרמטרים האלה בקוד המקור של הפונקציות של התוסף, בקובץ 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 מאכלסת באופן אוטומטי את ערכי הפרמטרים האלה בתוסף, אבל היא לא מקצה באופן אוטומטי את המוצרים המשויכים למשתמש במהלך ההתקנה. המשתמש שמתקין את התוסף צריך להפעיל את המוצרים הרלוונטיים והמשויכים בפרויקט שלו לפני ההתקנה. לדוגמה, אם התוסף שלכם כולל את Cloud Firestore, המשתמש צריך להגדיר את Cloud Firestore בפרויקט שלו. מומלץ להודיע למשתמשים על הדרישות האלה בקובץ PREINSTALL.md
.
הפנייה לפרמטרים שמאוכלסים באופן אוטומטי | תיאור | ערך הפרמטר (שסופק על ידי Firebase) |
---|---|---|
פרמטרים עם ערכי ברירת מחדל מהפרויקט ב-Firebase | ||
PROJECT_ID |
המזהה הייחודי של פרויקט Firebase שבו מותקן התוסף |
פורמט כללי:
ערך לדוגמה: |
DATABASE_URL |
כתובת ה-URL של המכונה Realtime Database שמוגדרת כברירת מחדל בפרויקט Firebase |
פורמט כללי:
ערך לדוגמה: |
DATABASE_INSTANCE |
שם המכונה Realtime Database של פרויקט Firebase שמוגדר כברירת מחדל בדרך כלל, הערך הזה זהה למזהה הפרויקט או מסתיים ב- |
פורמט כללי:
ערך לדוגמה: |
STORAGE_BUCKET |
שם הקטגוריה ב-Cloud Storage שמוגדר כברירת מחדל בפרויקט Firebase |
פורמט כללי:
ערך לדוגמה: |
פרמטר עם ערך ברירת מחדל מהתקנת התוסף | ||
EXT_INSTANCE_ID |
מזהה ייחודי של מופע התוסף שהותקן הערך הזה נוצר מהשדה |
פורמט כללי למכונה המותקנת הראשונה (הוקצה באופן אוטומטי על ידי Firebase, לא ניתן לשינוי על ידי משתמשים במהלך ההתקנה):
ערך לדוגמה: פורמט כללי למכונה השנייה שהותקנה ומעלה
(הוקצה באופן אוטומטי על ידי Firebase, המשתמשים יכולים לשנות אותו במהלך ההתקנה):
ערך לדוגמה: |
פרמטרים שהוגדרו על ידי משתמשים
כדי לאפשר למשתמש להתאים אישית כל מופע מותקן של תוסף, אפשר לבקש מהמשתמש לציין ערכי פרמטרים במהלך ההתקנה. כדי לבקש את הערכים האלה, מגדירים את ההנחיות בקטע params
בקובץ extension.yaml
.
לפניכם קטע לדוגמה של 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
בקטע params
בקובץ extension.yaml
, משתמשים בשדות הבאים כדי להגדיר פרמטר שהמשתמש מגדיר:
שדה | סוג | תיאור | ||||
---|---|---|---|---|---|---|
param (חובה) |
מחרוזת | שם הפרמטר | ||||
label (חובה) |
מחרוזת |
תיאור קצר של הפרמטר מוצג למשתמש כשמוצגת לו בקשה להזין את הערך של הפרמטר |
||||
description (אופציונלי) |
מחרוזת |
תיאור מפורט של הפרמטר מוצג למשתמש כשמוצגת לו בקשה להזין את הערך של הפרמטר תמיכה ב-Markdown | ||||
type (אופציונלי) |
מחרוזת |
מנגנון הקלט שבו המשתמש מגדיר את ערך הפרמטר (לדוגמה, הזנת טקסט ישירות או בחירה מתוך רשימה נפתחת) הערכים החוקיים כוללים את הערכים הבאים:
אם השדה הזה לא יצוין, הערך שמוגדר לפרמטר כברירת מחדל הוא |
||||
options (חובה אם הפרמטר type
הוא select או multiSelect )
|
list |
רשימת ערכים שהמשתמש יכול לבחור מתוכה צריך לכלול את השדות
השדה |
||||
resourceType (חובה אם הערך של הפרמטר type הוא selectResource )
|
מחרוזת |
סוג המשאב ב-Firebase שהמשתמש יתבקש לבחור. בשלב זה, רק קטגוריות Cloud Storage תומכות בבוררי משאבים:
המערכת תתעלם מערכים לא מוכרים של |
||||
example (אופציונלי) |
מחרוזת |
ערך לדוגמה של הפרמטר |
||||
validationRegex (אופציונלי) (רלוונטי רק כשהפרמטר type הוא
string )
|
מחרוזת |
מחרוזת ביטוי רגולרי לאימות הערך שהוגדר על ידי המשתמש לפרמטר הביטוי הרגולרי (regex) מקובץ באמצעות ספריית go: RE2 פרטים על האימות מופיעים בקטע אימות והודעות שגיאה בהמשך. |
||||
validationErrorMessage (אופציונלי) |
מחרוזת |
הודעת השגיאה שמוצגת אם הפונקציה פרטים על הודעות שגיאה מופיעים בקטע אימות והודעות שגיאה שבהמשך. |
||||
default (אופציונלי) |
מחרוזת |
ערך ברירת המחדל של הפרמטר אם המשתמש משאיר את הערך של הפרמטר ריק במקרים הרלוונטיים, אפשר לציין ערך של פרמטר שמאוכלס באופן אוטומטי עבור הערך |
||||
required (אופציונלי) |
בוליאני |
מגדיר אם המשתמש יכול לשלוח מחרוזת ריקה כשמתבקשים להזין את הערך של הפרמטר אם לא מציינים את |
||||
immutable (אופציונלי) |
בוליאני |
מגדיר אם המשתמש יכול לשנות את הערך של הפרמטר אחרי ההתקנה (לדוגמה, אם הוא מגדיר מחדש את התוסף). אם השדה
הערה: אם מגדירים פרמטר 'location' לפונקציות הפרוסות של התוסף, צריך לכלול את השדה |
אימות והודעות שגיאה לגבי ערכים שהוגדרו על ידי משתמשים
כשמגדירים פרמטר עם הערך type
של string
, צריך להגדיר אימות מתאים של ביטוי רגולרי דרך השדה validationRegex
של הפרמטר.
בנוסף, בהרבה תוספים, ערך פרמטר נפוץ הוא נתיב של מסד נתונים או קטגוריה Cloud Storage. חשוב לזכור שבמהלך ההתקנה, ההגדרה מחדש או העדכון, שירות Extensions לא מאמת את הפרטים הבאים בזמן הזנת ערך הפרמטר:
- האם מסד הנתונים או הקטגוריה Cloud Storage שצוינו מוגדרים בפרויקט Firebase של המשתמש
- אם נתיב מסד הנתונים שצוין קיים במסד הנתונים של המשתמש
עם זאת, כשהתוסף פורס את המשאבים שלו בפועל, במסוף Firebase או ב-CLI של Firebase תוצג הודעת שגיאה אם מסד הנתונים או הקטגוריה 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 |
באילו אזורים כדאי לפרוס את Cloud Functions? |
firebaseextensions.v1beta.function/memory | זיכרון הפונקציה | memory |
כמה מגה-בייט של זיכרון צריך להקצות לכל פונקציה? |
firebaseextensions.v1beta.function/timeoutSeconds | זמן קצוב לתפוגה של פונקציה | timeout |
למשך כמה שניות הפונקציות צריכות לפעול לפני שהן יפוג הזמן? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | תעבורת נתונים יוצאת (egress) של VPC Connector | vpcConnectorEgressSettings |
בקרה על תעבורת נתונים יוצאת כשמחובר מחבר VPC |
firebaseextensions.v1beta.function/vpcConnector | מחבר VPC | vpcConnector |
חיבור של Cloud Functions למחבר VPC שצוין. |
firebaseextensions.v1beta.function/minInstances | מספר המכונות המינימלי של הפונקציה | minInstances |
המספר המינימלי של המופעים של הפונקציה הזו שפועלים בו-זמנית |
firebaseextensions.v1beta.function/maxInstances | מספר המופעים המקסימלי של פונקציות | maxInstances |
מספר המופעים המקסימלי של הפונקציה הזו שיכולים לפעול בו-זמנית |
firebaseextensions.v1beta.function/ingressSettings | הגדרות תעבורת נתונים נכנסת (ingress) | ingressSettings |
קובעת מאיפה תתקבל תנועה נכנסת |
firebaseextensions.v1beta.function/labels | תוויות | labels |
תוויות שיוחלו על כל המשאבים בתוסף |