בדף הזה מוסבר איך לפרוס אפליקציות ל-Firebase באמצעות Cloud Build. אם אתם חדשים ב-Cloud Build, כדאי קודם לקרוא את המדריכים למתחילים ואת הסקירה הכללית על הגדרת Build.
לפני שמתחילים
מפעילים את Cloud Build API, Firebase API ו-Resource Manager API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
כדי להריץ את הפקודות
gcloudשבדף הזה, צריך להתקין את Google Cloud CLI.חשוב לשמור את קוד המקור של האפליקציה, כולל
firebase.json, בהישג יד. קוד המקור צריך להיות מאוחסן במאגר, כמו Cloud Source Repositories, GitHub או Bitbucket.אם עדיין אין לכם פרויקט לפריסה ב-Firebase, אתם יכולים ליצור פרויקט ברירת מחדל על ידי התקנה ואתחול של Firebase.
הרשאות IAM נדרשות
-
במסוף Google Cloud , נכנסים לדף settings Cloud Build Permissions:
בוחרים את חשבון השירות לבנייה.
מגדירים את הסטטוס של התפקידים הבאים למופעל:
- חשבון השירות של Cloud Build | מאפשר לחשבון השירות מדור קודם של Cloud Build לעדכן גרסאות build, לכתוב יומנים של גרסאות build ולאחסן ארטיפקטים של גרסאות build.
- Firebase Admin | מאפשר ל-Cloud Build לגשת ל-Firebase.
- API Keys Viewer | מאפשר ל-Cloud Build לגשת להגדרות הנוכחיות של Firebase Hosting במהלך פריסת ה-build.
שימוש בקובץ אימג' של Docker firebase
Cloud Build מספק קובץ אימג' של builder שאפשר להשתמש בו כדי להפעיל פקודות firebase ב-Cloud Build. כדי להשתמש בבונה הזה בקובץ הגדרות של Cloud Build, אפשר להשתמש בשלב ה-build firebase כדי לבצע פריסה ב-Firebase:
יוצרים קובץ הגדרות build בשם
cloudbuild.yamlאוcloudbuild.json, כאשר PROJECT_ID הוא מזהה הפרויקט שלכם ו-FIREBASE_PROJECT_ID הוא מזהה הפרויקט שלכם ב-Firebase:Google CloudYAML
steps: - name: "us-docker.pkg.dev/firebase-cli/us/firebase" args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting'] ## Or, target a specific version of firebase-tools - name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "FIREBASE_PROJECT_ID", "--only", "hosting" ] } ] }אפשר לבחור גרסה ספציפית של
firebase-toolsבאמצעות
name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.zמריצים את ה-build באמצעות קובץ התצורה של ה-build:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORYכאשר:
- REGION הוא אחד מאזורי הבנייה הנתמכים.
- CONFIG_FILE_PATH הוא הנתיב לקובץ התצורה של ה-build.
- SOURCE_DIRECTORY הוא הנתיב או כתובת ה-URL של קוד המקור.
פריסה רציפה
אתם יכולים ליצור טריגרים של Cloud Build כדי להפוך את הפריסה של התוכנה שלכם ב-Firebase לאוטומטית. אתם יכולים להגדיר טריגרים כדי לבצע build ולפרוס תמונות בכל פעם שאתם מעדכנים את קוד המקור.
כדי להפוך את הפריסה ל-Firebase לאוטומטית:
מאחסנים במאגר קובץ הגדרות build עם שלבים להפעלת הפקודה
firebase deploy, כאשר PROJECT_ID הוא מזהה הפרויקט Google Cloud :YAML
steps: - name: us-docker.pkg.dev/firebase-cli/us/firebase args: ['deploy', '--project=PROJECT_ID', '--only=hosting']JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "PROJECT_ID", "--only", "hosting" ] } ] }יוצרים טריגר עם קובץ תצורת ה-build שנוצר בשלב הקודם:
פותחים את הדף Triggers במסוף Google Cloud :
בוחרים את הפרויקט מהתפריט הנפתח לבחירת פרויקט בחלק העליון של הדף.
לוחצים על פתיחה.
לוחצים על Create trigger (יצירת ביטוי להפעלה).
בדף Create trigger, מזינים את ההגדרות הבאות:
מזינים שם לטריגר.
בוחרים את אירוע המאגר כדי להפעיל את הטריגר.
בוחרים את המאגר שמכיל את קובץ ההגדרות של קוד המקור וה-build.
מציינים את הביטוי הרגולרי לשם הענף או התג שיפעיל את הטריגר.
Configuration: בוחרים את קובץ הגדרות ה-build שיצרתם קודם.
לוחצים על יצירה כדי לשמור את טריגר לפיתוח גרסת Build.
בכל פעם שתדחפו קוד חדש למאגר, תתחילו באופן אוטומטי גרסת build ופריסה ב-Firebase.
מידע נוסף על יצירת טריגרים של Cloud Build זמין במאמר בנושא יצירה וניהול של טריגרים של Build.
קוד לדוגמה
כדי לראות קוד לדוגמה לפריסה ב-Firebase באמצעות Cloud Build, עוברים אל deploy-firebase-example.
המאמרים הבאים
- איך מבצעים פריסות כחולות/ירוקות ב-Compute Engine
- איך פורסים ב-Cloud Run
- איך פורסים ב-GKE
- איך פורסים ב-Cloud Run functions
- איך פורסים ב-App Engine
- פתרון בעיות שגיאות בבנייה