פרמטרים הם המנגנון שבאמצעותו משתמש יכול להתאים אישית כל מופע מותקן של תוסף. פרמטרים דומים למשתני הסביבה של תוסף. הערכים של הפרמטרים יכולים להיות מאוכלסים אוטומטית (מסופקים על ידי 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 (כמו קטגוריית Storage ברירת המחדל) או שהם ספציפיים לתוסף (כמו מזהה המופע של התוסף).
אי אפשר לשנות את כל ערכי הפרמטרים שמולאו אוטומטית. הם מוגדרים בזמן יצירת הפרויקט או התקנת התוסף.
למרות ש-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(אופציונלי) |
בוליאני |
ההגדרה קובעת אם המשתמש יכול לשנות את ערך הפרמטר אחרי ההתקנה (לדוגמה, אם הוא מגדיר מחדש את התוסף) אם לא מציינים את הערך
הערה: אם הגדרתם פרמטר 'מיקום' לפונקציות שפרסתם של התוסף, אתם צריכים לכלול את השדה |
אימות והודעות שגיאה לגבי ערכים שהוגדרו על ידי המשתמש
כשמגדירים פרמטר עם type של string, צריך להגדיר אימות מתאים של ביטוי רגולרי דרך השדה validationRegex של הפרמטר.
בנוסף, ברוב התוספים, ערך פרמטר נפוץ שנדרש הוא נתיב מסד נתונים או קטגוריית Cloud Storage. חשוב לדעת שבמהלך התקנה, הגדרה מחדש או עדכון, שירות Extensions לא מאמת את הפרטים הבאים בזמן הזנת ערך הפרמטר:
- האם מסד הנתונים או מאגר Cloud Storage שצוינו מוגדרים בפרויקט Firebase של המשתמש
- אם נתיב מסד הנתונים שצוין קיים במסד הנתונים של המשתמש
עם זאת, כשמתבצעת פריסה של המשאבים של התוסף, אם מסד הנתונים או דלי ה-Cloud Storage שאליהם יש הפניה עדיין לא הוגדרו בפרויקט, תוצג הודעת שגיאה במסוף Firebase או ב-CLI של Firebase.
מומלץ מאוד להודיע למשתמשים בקובץ 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 | 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 |
תוויות להחלה על כל המשאבים בתוסף |