פריסת מאגרי עובדים מקוד המקור

בדף הזה מוסבר איך לפרוס מאגר חדש של עובדים או גרסה של מאגר עובדים ב-Cloud Run ישירות מקוד המקור באמצעות פקודה אחת של ה-CLI של gcloud,‏ gcloud run worker-pools deploy, עם הדגל --source.

מאחורי הקלעים, הפקודה הזו משתמשת ב-Google Cloud Buildpacks וב-Cloud Build כדי ליצור אוטומטית קובצי אימג' של קונטיינרים מקוד המקור שלכם, בלי שתצטרכו להתקין את Docker במחשב או להגדיר Buildpacks או Cloud Build. כברירת מחדל, Cloud Run משתמש בסוג המכונה שמוגדר כברירת מחדל ב-Cloud Build. הפעלת הפקודה gcloud run worker-pools deploy מבטלת את הצורך להפעיל גם את הפקודה gcloud builds submit.

הערה: פריסות של מקורות משתמשות ב-Artifact Registry כדי לאחסן קונטיינרים בנויים. אם בפרויקט שלכם עדיין אין מאגר Artifact Registry בשם cloud-run-source-deploy באזור שבו אתם מבצעים פריסה, התכונה הזו יוצרת באופן אוטומטי מאגר Artifact Registry בשם cloud-run-source-deploy.

אם יש קובץ Dockerfile בספריית קוד המקור, קוד המקור שהועלה נבנה באמצעות קובץ Dockerfile הזה. אם אין קובץ Docker בספריית קוד המקור, ‏Buildpacks של Google Cloud מזהה באופן אוטומטי את השפה שבה אתם משתמשים ומביא את התלויות של הקוד כדי ליצור קובץ אימג' של קונטיינר שמוכן לייצור, באמצעות קובץ אימג' בסיסי מאובטח שמנוהל על ידי Google.

לפני שמתחילים

  • חשוב לוודא שהגדרתם פרויקט חדש ל-Cloud Run כמו שמתואר בדף ההגדרה.
  • מפעילים את Cloud Run Admin API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

    אחרי שמפעילים את Cloud Run Admin API, נוצר באופן אוטומטי חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

התפקידים הנדרשים

כדי לבצע פריסה ממקור, אתם או האדמין שלכם צריכים להקצות לחשבון הפריסה את תפקידי ה-IAM הבאים.

לחצו כדי לראות את התפקידים הנדרשים לחשבון הפריסה

כדי לקבל את ההרשאות שדרושות לבנייה ולפריסה ממקור, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

שפות נתמכות

בנוסף למקורות עם קובץ Dockerfile, פריסה ממקור תומכת בשפות הבאות באמצעות buildpacks של Google Cloud:

  • המשך
  • Node.js
  • Python
  • Java
  • Kotlin
  • Groovy
  • Scala
  • ‎.NET
  • Ruby
  • PHP

מידע נוסף על גרסאות שפה נתמכות

פריסה מקוד המקור באמצעות build

בקטע הזה נסביר איך להשתמש ב-Buildpacks של Google Cloud וב-Cloud Build כדי ליצור אוטומטית קובצי אימג' של קונטיינרים מקוד המקור שלכם, בלי שתצטרכו להתקין את Docker במחשב או להגדיר Buildpacks או Cloud Build.

מגבלות

  • הפריסה מקוד המקור מתבצעת באמצעות Artifact Registry ו-Cloud Build, ולכן התכונה הזו זמינה רק באזורים שנתמכים על ידי Artifact Registry ו-Cloud Build.
  • פריסה מהמקור היא תכונה נוחה, אבל היא לא מאפשרת התאמה אישית מלאה של הבנייה. כדי לקבל יותר שליטה, אפשר ליצור את קובץ האימג' של הקונטיינר באמצעות Cloud Build, למשל באמצעות gcloud builds submit, ואז לפרוס את קובץ האימג' של הקונטיינר באמצעות, למשל, gcloud run worker-pools deploy --image.
  • כשפורסים מקוד המקור באמצעות חבילות ה-buildpack של Google Cloud, תאריך העדכון האחרון של קובצי המקור מוגדר ל-1 בינואר 1980. זו התנהגות ברירת המחדל של buildpacks, והיא נועדה לתמוך בבנייה שניתנת לשחזור. בהתאם למסגרת השפה שלכם, זה יכול להשפיע על שמירת קבצים סטטיים במטמון בצד הדפדפן. אם הבאג הזה משפיע על האפליקציה שלכם, Google ממליצה להשבית את כותרות ה-HTTP‏ etag ו-Last-Modified באפליקציה.
  • כשפורסים ממקור באמצעות buildpacks של Google Cloud, תמיד נעשה שימוש ב-gcr.io/buildpacks/builder:latest. אם השפה המועדפת או הגדרות מערכת ההפעלה לא זמינות ב-latest, משתמשים ב-builder ספציפי כדי ליצור קובץ אימג' של אפליקציה באמצעות ה-builder המועדף.
  • אפשר לפרוס את מאגר העובדים ממקור באמצעות Kotlin ושפות אחרות של JVM כמו Java. השפה שבה אתם משתמשים צריכה לעמוד בכללים הבאים:

    • אפשר ליצור את האפליקציה באמצעות Maven או Gradle.
    • קובץ ה-build מכיל את כל הפלאגינים שנדרשים כדי ליצור מחלקות מוצרים.

לפני שמבצעים פריסה באמצעות build

לפני שמבצעים פריסה מהמקור באמצעות build:

  • פועלים לפי השלבים בקטע לפני שמתחילים.

  • מפעילים את Cloud Build API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

התפקידים הנדרשים

כדי לבצע פריסה ממקור באמצעות build, אתם או האדמין שלכם צריכים להעניק לחשבון השירות של Cloud Build את תפקידי ה-IAM הבאים.

לחצו כדי לראות את התפקידים הנדרשים לחשבון השירות של Cloud Build

Cloud Build משתמש אוטומטית בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כחשבון השירות שמוגדר כברירת מחדל ב-Cloud Build כדי לבנות את קוד המקור ואת משאב Cloud Run, אלא אם משנים את ההתנהגות הזו. כדי ש-Cloud Build יוכל לבצע build של המקורות, צריך לבקש מהאדמין להעניק את התפקיד Cloud Run Builder (roles/run.builder) לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine בפרויקט:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

מחליפים את PROJECT_NUMBER במספר הפרויקט ואת PROJECT_ID במזהה הפרויקט. Google CloudGoogle Cloudהוראות מפורטות לאיתור מזהה הפרויקט ומספר הפרויקט זמינות במאמר יצירה וניהול של פרויקטים.

הענקת תפקיד ה-builder ב-Cloud Run לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine לוקחת כמה דקות עד שהיא מופצת.

רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

פריסה עם build

כדי לפרוס מקוד המקור:

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. עוברים לספריית קובצי המקור. ספריית קובצי המקור משתמשת בקובץ Dockerfile אם הוא קיים, אבל הוא לא נדרש.

  3. בונים ומפריסים את מאגר העובדים:

    gcloud run worker-pools deploy WORKERPOOL --source .
    מחליפים את WORKERPOOL בשם שרוצים לתת למאגר העובדים.

  4. אם מופיעה בקשה להתקין ממשקי API נדרשים, משיבים y כשמופיעה הבקשה. צריך לעשות את זה רק פעם אחת לכל פרויקט. אם לא הגדרתם ערכי ברירת מחדל לפלטפורמה ולאזור כמו שמתואר בדף ההגדרה, תצטרכו להגיב להנחיות אחרות ולציין את הפלטפורמה והאזור.

  5. מחכים לסיום של ה-build והפריסה. בסיום, תוצג הודעה על הצלחה ב-Cloud Run.

אוטומציה של בנייה ממקור

כדי להימנע משינויים לא מתועדים במקור מקומי, Google ממליצה לבצע פריסה אוטומטית כששינויים נדחפים למאגר Git. כדי להקל על התהליך, אתם יכולים לקשר ולהגדיר פריסה רציפה למאגר העובדים של Cloud Run. אם מקשרים את מאגרי GitHub ל-Cloud Run, אפשר להגדיר בנייה ולפרוס את המאגרים בלי לכתוב Dockerfiles או קובצי בנייה.

המאמרים הבאים

אחרי שפורסים מאגר עובדים של Cloud Run, אפשר לבצע את הפעולות הבאות: