מקובל כאשר פרוסות כמה סביבות מאותו קוד בסיס, כל אחת עם הגדרות אישיות מעט שונות. לדוגמה, יכול להיות שתרצו להקצות פחות מעבד ופחות זיכרון RAM לסביבת ה-staging, או לוודא שבסביבת הייצור תהיה לפחות מכונה אחת פעילה ומוכנה למתן בקשות. כדאי גם לציין סודות ומשתני סביבה שונים בהתאם לסביבה ולמשאבים שבהם רוצים להשתמש.
במדריך הזה נסביר איך לפרוס סביבת ייצור וסביבת Staging, כל אחת לפרויקט Firebase נפרד. לפי אותם עקרונות, אפשר לפרוס בסביבות מסוגים שונים. מידע נוסף על סביבות זמין במאמרים סקירה כללית על סביבות ושיטות מומלצות כלליות להגדרת פרויקטים ב-Firebase.
דרישות מוקדמות
- קוד האפליקציה שלכם כבר מאוחסן ב-GitHub.
- כבר יצרתם פרויקט נפרד לכל אחת מהסביבות שלכם, למשל
my-production-firebase-project
ו-my-staging-firebase-project
. חשוב לתייג את פרויקט Firebase לסביבת הייצור באמצעות סוג הסביבה 'production'. - בכל פרויקט יצרתם קצה עורפי של App Hosting, וההסתעפות הפעילה מוגדרת להסתעפות ב-GitHub שאתם רוצים לפרוס (למשל
main
). למידע נוסף, ראו תחילת העבודה עם App Hosting.
שלב 0: יצירת הגדרת ברירת מחדל בקובץ apphosting.yaml
App Hosting תומך בקובץ תצורה בשם apphosting.yaml
כדי לנהל הגדרות של זמן ריצה (מעבד (CPU), בו-זמניות, מגבלות זיכרון וכו') ומשתני סביבה לאפליקציה שלכם, וגם תמיכה בהפניות לסודות שמנוהלים באמצעות Cloud Secret Manager, כך שתוכלו לבדוק בבטחה את בקרת המקור. למידע נוסף, ראו הגדרת קצה עורפי.
כדי להתחיל, צריך ליצור קובץ apphosting.yaml
בתיקיית השורש של האפליקציה.
זהו קובץ התצורה החלופי שמשמש כשקובץ תצורה ספציפי לסביבה לא נמצא. הערכים ששמורים ב-apphosting.yaml
צריכים להיות ערכי ברירת מחדל שאפשר להשתמש בהם בכל הסביבות.
בקטעים הבאים מוסבר איך לשנות את ערכי ברירת המחדל ב-apphosting.yaml
בסביבות ספציפיות. בתהליך לדוגמה הזה נוצרת סביבה לניסיון.
שלב 1: מגדירים את שם הסביבה
לכל קצה עורפי של App Hosting יש הגדרה של שם הסביבה. השדה הזה משמש למיפוי הקצה העורפי לקובץ תצורה ספציפי לסביבה, וניתן לשנות אותו בכל שלב. אפשר להגדיר רק שם סביבה אחד לכל קצה עורפי.
כדי להגדיר את שם הסביבה של הקצה העורפי:
- במסוף Firebase, בוחרים את פרויקט ה-staging (בדוגמאות האלה, my-staging-firebase-project).
- בוחרים באפשרות App Hosting בסרגל הניווט הימני.
- לוחצים על View dashboard (הצגת מרכז הבקרה) בקצה העורפי שבחרתם.
- בכרטיסייה Settings, בוחרים באפשרות Deployment.
- בקטע Environment name (שם הסביבה),מזינים את שם הסביבה. אפשר לתת לסביבה כל שם שרוצים. בדוגמה הזו, השם הוא staging.
- לוחצים על שמירה.
כשהשקה של App Hosting מופעלת לקצה העורפי (ב-git push או באופן ידני דרך המסוף), App Hosting יבדוק אם יש קובץ apphosting.ENVIRONMENT_NAME.yaml
לפני שהוא יחזור ל-apphosting.yaml
.
שלב 2: יוצרים את קובץ apphosting.yaml
הספציפי לסביבה
להגדרות הספציפיות לסביבה, יוצרים קובץ בשם apphosting.ENVIRONMENT_NAME.yaml
כדי לציין שינויים ספציפיים לסביבה. הפורמט של הקובץ הזה זהה לפורמט של הקובץ apphosting.yaml שמוגדר כברירת מחדל, והוא חייב להיות ממוקם בספריית השורש של האפליקציה לצד apphosting.yaml
.
בזמן ה-build, App Hosting ממזג את שני הקבצים האלה, כאשר הערכים בקובץ ה-YAML הספציפי לסביבה מקבלים עדיפות על פני הקובץ הבסיסי apphosting.yaml
.
בדוגמה הזו, נוצר קובץ בשם apphosting.staging.yaml
בספריית השורש של האפליקציה:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
נניח שכבר היה לכם apphosting.yaml
שנראה כך:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
הפלט הממוזג הסופי, שאפשר לבדוק ביומני Cloud Build, ייראה כך:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
הערה: ערכים מסוימים של runConfig
, כמו מעבד, הוחלפו, וגם משתני סביבה חופפים.
שלב 3: פריסת קוד הבסיס
אחרי שמסיימים לערוך את קובץ apphosting.ENVIRONMENT_NAME.yaml
הספציפי לסביבה, דוחפים את הקובץ ל-GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
כל קצה עורפי שמתויג בשם הסביבה הזה ישתמש בערכי ההחרגה הספציפיים שציינתם בקובץ ה-YAML התואם, ויעבור לערך apphosting.yaml
אם לא יימצא ערך. לקצוות עורפיים ללא שם סביבה משויך, אפשר להמשיך להשתמש בקובץ apphosting.yaml.
השלבים הבאים
- מידע נוסף: מדריך ב-Codelab של Firebase לשילוב אפליקציה מתארחת עם אימות ב-Firebase ותכונות של AI מבית Google: Next.js | Angular
- מקשרים דומיין מותאם אישית.
- מגדירים את הקצה העורפי.
- מעקב אחר השקות, שימוש באתרים ויומנים.