פרמטרים הם המנגנון שבאמצעותו משתמש יכול להתאים אישית כל מופע מותקן של תוסף. פרמטרים הם כמו משתני הסביבה של תוסף. הערכים של הפרמטרים יכולים להיות מאוכלסים אוטומטית (מסופקים על ידי 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 לאימות הערך שהמשתמש הגדיר לפרמטר הביטוי הרגולרי (regex) עובר קומפילציה באמצעות ספריית Go: RE2 פרטים נוספים על אימות מופיעים בקטע אימות והודעות שגיאה שבהמשך. |
||||
validationErrorMessage (אופציונלי) |
מחרוזת |
הודעת השגיאה שתוצג אם הפעולה
פרטים על הודעות השגיאה מופיעים בקטע אימות והודעות שגיאה שבהמשך. |
||||
default (אופציונלי) |
מחרוזת |
ערך ברירת המחדל של הפרמטר אם המשתמש משאיר את הערך של הפרמטר ריק אם רלוונטי, אפשר לציין ערך של פרמטר שאוכלס באופן אוטומטי עבור הערך |
||||
required (אופציונלי) |
בוליאני |
ההגדרה הזו קובעת אם המשתמש יכול לשלוח מחרוזת ריקה כשהוא מתבקש להזין את הערך של הפרמטר. אם לא מציינים את |
||||
immutable (אופציונלי) |
בוליאני |
הגדרה אם המשתמש יכול לשנות את ערך הפרמטר אחרי ההתקנה (לדוגמה, אם הוא מגדיר מחדש את התוסף) אם לא מציינים את הערך
הערה: אם הגדרתם פרמטר 'מיקום' לפונקציות שפרסתם של התוסף, אתם צריכים לכלול את השדה |
אימות והודעות שגיאה לגבי ערכים שהוגדרו על ידי המשתמש
כשמגדירים פרמטר עם 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 | 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 |
תוויות להחלה על כל המשאבים בתוסף |