פרמטרים הם המנגנון שבאמצעותו משתמשים מתאימים אישית כל מכונה מותקנת של תוסף. פרמטרים הם כמו משתני הסביבה של תוסף. הערכים של הפרמטרים יכולים להיות מאוכלסים באופן אוטומטי (המערכת של 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 |
תוויות שיוחלו על כל המשאבים בתוסף |