פריסת יעדים הם מזהים מקוצרים (אתם מגדירים בעצמכם) למשאבים ב-Firebase בפרויקט Firebase, כמו אתר אירוח עם נכסים סטטיים ייחודיים או קבוצת מכונות של מסד נתונים בזמן אמת שחולקים את אותם כללי אבטחה.
כדאי לפרוס יעדים כשיש מספר אתרים לאירוח, מספר קטגוריות של Cloud Storage או מספר מכונות של מסדי נתונים בזמן אמת. באמצעות יעדי פריסה, ה-CLI של Firebase יכול לפרוס את ההגדרות למשאב ספציפי של Firebase או לקבוצת משאבים בפרויקט, כמו:
- תצורת האירוח של כל אחד מאתרי האירוח
- נכסים סטטיים מספריית הפרויקטים לכל אחד מאתרי האירוח
- כללי אבטחה שמשותפים למספר מכונות של מסדי נתונים בזמן אמת או למספר קטגוריות של Cloud Storage
כדי להגדיר יעד פריסה:
- מחילים
TARGET_NAME
על המשאב של Firebase או על קבוצת משאבי Firebase המטורגטים. - בקובץ
firebase.json
, כשקובעים את ההגדרות לכל משאב או קבוצת משאבים, כדאי להפנות ל-TARGET_NAME
המשויך.
כשאתם מריצים פקודות ב-CLI של Firebase (כמו firebase deploy
), ה-CLI של Firebase מתאים כל TARGET_NAME
למשאבים המשויכים אליו ב-Firebase. לאחר מכן ה-CLI מעביר לפרויקט Firebase את ההגדרות של כל משאב.
איך להגדיר יעדי פריסה למשאבי Firebase
באמצעות ה-CLI של Firebase, מחילים TARGET_NAME
(מזהה מקוצר שאתם מגדירים בעצמכם) על משאב ב-Firebase או על קבוצה של משאבים ב-Firebase.
מערכת Firebase תומכת ביעדי פריסה עבור:
- אתרים לאירוח ב-Firebase
- קטגוריות אחסון של Cloud Storage for Firebase
- מופעים של מסד הנתונים בזמן אמת ב-Firebase
ההגדרות של יעדי הפריסה נשמרות בקובץ .firebaserc
בספריית הפרויקטים, כך שצריך להגדיר את יעדי הפריסה רק פעם אחת לכל פרויקט.
הגדרת יעדי פריסה לאירוח
כדי ליצור יעד פריסה ולהחיל TARGET_NAME
על אתר אירוח, מריצים את פקודת ה-CLI הבאה:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
כאשר הפרמטרים הם:
TYPE – סוג המשאב הרלוונטי ב-Firebase
- אם רוצים להוסיף אתרים לאירוח ב-Firebase, השתמשו ב-
hosting
.
- אם רוצים להוסיף אתרים לאירוח ב-Firebase, השתמשו ב-
TARGET_NAME – שם ייחודי לאתר האירוח שבו אתם פורסים
RESOURCE_IDENTIFIER —
SITE_ID
של אתר האירוח כפי שמפורט בפרויקט Firebase
לדוגמה, אם יצרתם שני אתרים (myapp-blog
ו-myapp-app
) בפרויקט Firebase, תוכלו להחיל TARGET_NAME
ייחודי (blog
ו-app
, בהתאמה) על כל אתר על ידי הרצת הפקודות הבאות:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
הגדרת יעדי פריסה עבור Cloud Storage או עבור מסד נתונים בזמן אמת
כדי ליצור יעד פריסה ולהחיל TARGET_NAME
על קבוצה של משאבים ב-Cloud Storage או של מסד נתונים בזמן אמת, מריצים את פקודת ה-CLI הבאה:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
כאשר הפרמטרים הם:
TYPE – סוג המשאב הרלוונטי ב-Firebase
- לקטגוריות של Cloud Storage, צריך להשתמש ב-
storage
. - למופעים של מסד נתונים בזמן אמת, צריך להשתמש ב-
database
.
- לקטגוריות של Cloud Storage, צריך להשתמש ב-
TARGET_NAME – שם ייחודי למשאב או לקבוצת המשאבים שחולקים כללי אבטחה
RESOURCE_IDENTIFIER – המזהים של המשאבים כפי שרשומים בפרויקט Firebase (כמו שמות של קטגוריות אחסון או מזהים של מכונה של מסד נתונים) עם אותם כללי אבטחה
לדוגמה, אפשר להחיל את TARGET_NAME
של main
על קבוצה של שלוש קטגוריות אזוריות של Cloud Storage (שכולן חולקות את אותם כללי אבטחה) על ידי הרצת הפקודה הבאה:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
שימו לב ש-myproject.appspot.com
הוא המזהה של קטגוריית ברירת המחדל, ו-myproject-eu
ו-myproject-ja
הן שתי קטגוריות נוספות שנוצרו בפרויקט Firebase.
צריך להגדיר את קובץ firebase.json לשימוש ביעדי פריסה
אחרי שמגדירים יעדים לפריסת משאבים ב-Firebase, צריך להפנות לכל TARGET_NAME
שהוחל בקובץ התצורה של firebase.json
:
- יוצרים מערך אובייקטים של הגדרות אישיות לכל משאב
TYPE
ב-Firebase (hosting
,storage
אוdatabase
). - במערכים, צריך לציין את השדה
target
(באמצעותTARGET_NAME
) ולקבוע את ההגדרות של המשאב או קבוצת המשאבים ב-Firebase המשויכים.
בהמשך לדוגמאות שלמעלה, שבו יש בפרויקט Firebase שני אתרי אירוח ושלוש קטגוריות של Cloud Storage (שחולקות אותם כללי אבטחה), הקובץ firebase.json
ייראה כך:
{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] } { "storage": [ { "target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets "rules": "storage.main.rules" // the file that contains the shared security rules } ] }
אם יש כמה הגדרות אישיות למשאבים, אפשר ליצור כמה יעדי פריסה ולציין כל אחד מהם בקובץ firebase.json
. כל המשאבים המשויכים ייפרסו יחד כאשר תריצו את firebase deploy
.
ניהול יעדי פריסה
ההגדרות של יעדי הפריסה נשמרות בקובץ .firebaserc
בספריית הפרויקט. כדי לנהל את יעדי הפריסה של הפרויקט, מריצים כל אחת מהפקודות הבאות מהשורש של ספריית הפרויקט.
פקודה | תיאור |
---|---|
firebase target
|
פירוט של יעדי הפריסה בספריית הפרויקטים הנוכחית שלך |
firebase target:remove \
|
הסרה של משאב מהיעד שאליו הוא הוקצה |
firebase target:clear \
|
הסרת כל המשאבים או אתר האירוח מהיעד שצוין |
הפקודות target:remove
ו-target:clear
מעדכנות באופן אוטומטי את הגדרות יעד הפריסה בקובץ .firebaserc
בספריית הפרויקט.
בדיקה מקומית לפני פריסה
מריצים את הפקודות הבאות מהשורש של ספריית הפרויקט.
פקודה | תיאור |
---|---|
firebase emulators:start
|
אמולציה של כל המשאבים שהוגדרו בספריית הפרויקטים |
firebase emulators:start \ |
אמולציה של תוכן האירוח והתצורה שלו של אתר האירוח שצוין |
firebase emulators:start \
|
אמולציה של קובץ הכללים בלבד עבור יעד Cloud Storage שצוין |
firebase emulators:start \
|
אמולציה של קובץ הכללים בלבד עבור יעד מסד הנתונים בזמן אמת שצוין |
למידע נוסף על הגדרה של חבילת אמולטור מקומי של Firebase ועל השימוש בה.
פריסה של משאבים ספציפיים ב-Firebase
מריצים את הפקודות הבאות מהשורש של ספריית הפרויקט.
פקודה | תיאור |
---|---|
firebase deploy
|
יצירת גרסה של כל המשאבים שאפשר לפרוס בספריית הפרויקטים שלכם |
firebase deploy \
|
פריסה רק של תוכן האירוח והתצורה של אתר האירוח שצוין בערוץ החי של האתר |
firebase hosting:channel:deploy CHANNEL_ID \ |
פורס רק את התוכן והתצורה של אתר האירוח שצוין לערוץ תצוגה מקדימה של האתר |
firebase deploy \
|
פריסה רק של קובץ הכללים ליעד Cloud Storage שצוין |
firebase deploy \
|
פריסה רק של קובץ הכללים ליעד שצוין של מסד הנתונים בזמן אמת |