בדף הזה מוסבר איך לפרוס מאגר חדש של Worker או גרסה חדשה של מאגר Worker ב-Cloud Run ישירות מקוד המקור, באמצעות פקודה אחת של ה-CLI של gcloud, gcloud run worker-pools deploy עם הדגל --source.
gcloud run worker-pools deploy, לא צריך להריץ גם את הפקודה gcloud builds submit.
שימו לב שפריסות מקור משתמשות ב-Artifact Registry כדי לאחסן קונטיינרים שנוצרו. אם בפרויקט שלכם עדיין אין מאגר Artifact Registry בשם cloud-run-source-deploy באזור שבו אתם פורסים, התכונה הזו יוצרת באופן אוטומטי מאגר Artifact Registry בשם cloud-run-source-deploy.
אם יש קובץ Docker בספריית קוד המקור, קוד המקור שהועלה נבנה באמצעות קובץ ה-Docker הזה. אם אין קובץ Docker בספריית קוד המקור, חבילות ה-buildpack של Google Cloud מזהות באופן אוטומטי את השפה שבה אתם משתמשים ומאחזרות את יחסי התלות של הקוד כדי ליצור קובץ אימג' של קונטיינר שמוכן לייצור, באמצעות קובץ אימג' בסיסי מאובטח שמנוהל על ידי Google.
לפני שמתחילים
- מוודאים שהגדרתם פרויקט חדש ל-Cloud Run, כמו שמתואר בדף ההגדרה.
-
מפעילים את Cloud Run Admin API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםאחרי שמפעילים את Cloud Run Admin API, חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine נוצר באופן אוטומטי.
התפקידים הנדרשים
כדי לפרוס מקוד מקור, אתם או האדמין שלכם צריכים להקצות לחשבון הפריסה את תפקידי ה-IAM הבאים.
כדי לראות את התפקידים שנדרשים לחשבון הפריסה, לחצו כאן
כדי לקבל את ההרשאות שנדרשות לבנייה ולפריסה מקוד המקור, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח מקור ב-Cloud Run (
roles/run.sourceDeveloper) בפרויקט - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות של שירות Cloud Run
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר ה-Workers של Cloud Run מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח של Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
שפות נתמכות
בנוסף למקורות עם קובץ Docker, פריסה מקוד מקור תומכת בשפות הבאות באמצעות 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.
- פריסה מהמקור היא תכונה נוחה, אבל היא לא מאפשרת התאמה אישית מלאה של ה-build. כדי לקבל יותר שליטה, אתם יכולים ליצור את קובץ האימג' של הקונטיינר באמצעות Cloud Build, למשל באמצעות
gcloud builds submit, ואז לפרוס את קובץ האימג' של הקונטיינר באמצעותgcloud run worker-pools deploy --image, למשל. - כשפורסים מהמקור באמצעות חבילות ה-buildpack של Google Cloud, התאריך האחרון לשינוי של קובצי המקור מוגדר ל-1 בינואר 1980. זוהי התנהגות ברירת המחדל של buildpacks, והיא נועדה לתמוך בגרסאות build שניתן לשחזר. בהתאם למסגרת השפה, יכול להיות שהפעולה הזו תשפיע על השמירה במטמון של קבצים סטטיים בצד הדפדפן. אם האפליקציה שלכם מושפעת מכך, Google ממליצה להשבית את כותרות ה-HTTP
etagו-Last-Modifiedבאפליקציה. - כשפורסים מקוד מקור באמצעות buildpacks של Google Cloud, תמיד משתמשים ב-
gcr.io/buildpacks/builder:latest. אם השפה או הגדרות מערכת ההפעלה שאתם מעדיפים לא זמינות ב-latest, אתם יכולים להשתמש ב-builder ספציפי כדי ליצור קובץ אימג' של האפליקציה באמצעות ה-builder שאתם מעדיפים. אתם יכולים לפרוס את מאגר ה-workers מהמקור באמצעות Kotlin ושפות JVM אחרות, כמו Java. השפה שבה אתם משתמשים חייבת לעמוד בכללים הבאים:
- אפשר ליצור את האפליקציה באמצעות Maven או Gradle.
- קובץ ה-build מכיל את כל הפלאגינים שנדרשים כדי ליצור מחלקות.
לפני הפריסה באמצעות build
לפני שפורסים מקוד המקור באמצעות build:
מבצעים את השלבים שמפורטים בקטע לפני שמתחילים.
-
מפעילים את Cloud Build API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
התפקידים הנדרשים
כדי לפרוס מקוד מקור עם build, אתם או האדמין שלכם צריכים להקצות לחשבון השירות של Cloud Build את תפקידי ה-IAM הבאים.
כדי לראות את התפקידים הנדרשים לחשבון השירות ב-Cloud Build, לחצו כאן
כברירת מחדל, Cloud Build משתמש באופן אוטומטי בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי לבנות את קוד המקור ואת המשאב של Cloud Run, אלא אם משנים את ההתנהגות הזו. כדי ש-Cloud 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 במספר הפרויקט ב- Google Cloud, ואת PROJECT_ID במזהה הפרויקט ב- Google Cloud. במאמר יצירה וניהול של פרויקטים מוסבר איך למצוא את מזהה הפרויקט ואת מספר הפרויקט.
הקצאת התפקיד "מפתח ב-Cloud Run" לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine מתעדכנת תוך כמה דקות.
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר ה-Workers של Cloud Run מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח של Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
פריסה באמצעות build
כדי לפרוס מקוד מקור:
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
עוברים לספריית קובצי המקור. אם יש קובץ Docker בספריית קובצי המקור, הוא משמש את הספרייה, אבל זה לא חובה.
יוצרים ומפעילים את מאגר ה-workers:
מחליפים אתgcloud run worker-pools deploy WORKERPOOL --source .
WORKERPOOLבשם שרוצים לתת למאגר ה-workers.אם מופיעה בקשה להתקין את ממשקי ה-API הנדרשים, מזינים
y. צריך לעשות את זה רק פעם אחת בכל פרויקט. משיבים להנחיות אחרות על ידי ציון הפלטפורמה והאזור, אם לא הגדרתם להם ברירות מחדל כפי שמתואר בדף ההגדרה.מחכים שה-build והפריסה יסתיימו. בסיום, תופיע הודעת הצלחה ב-Cloud Run.
אוטומציה של בנייה מהמקור
כדי להימנע משינויים ללא גרסה במקור המקומי, מומלץ לפרוס באופן אוטומטי כששינויים נדחפים למאגר Git. כדי להקל על התהליך, אתם יכולים לקשר ולהגדיר פריסה רציפה למאגר ה-Workers של Cloud Run. כשמקשרים את המאגרים ב-GitHub ל-Cloud Run, אפשר להגדיר גרסאות build ולפרוס את המאגרים בלי לכתוב קובצי Docker או קובצי build.
המאמרים הבאים
אחרי שפורסים מאגר של Cloud Run worker, אפשר לבצע את הפעולות הבאות:
- הצגת יומנים של מאגר עובדים
- מעקב אחרי מאגרי Worker
- הגדרת מגבלות זיכרון
- הגדרה של משתני סביבה
- ניהול מאגר ה-workers
- ניהול גרסאות של מאגר ה-workers