פריסה רציפה ממאגר

אם יש לכם קוד מקור או פונקציות במאגר Git ואתם רוצים להגדיר בנייה אוטומטית ופריסות רציפות ממאגר, אתם יכולים להשתמש ב-Cloud Build או ב-Developer Connect במסוף Cloud Run.

כשמגדירים את זה, Cloud Run משתמש בטריגר לפיתוח גרסת Build של Cloud Build כדי ליצור ולפרוס את הקוד באופן אוטומטי בכל פעם שמעבירים בדחיפה קומיטים חדשים להסתעפות מסוימת במאגר Git. פרטי מאגר המקור מוצגים במסוף Google Cloud בשירות שלכם אחרי הפריסה ב-Cloud Run.

במסוף Cloud Run:

  • אם בוחרים ב-Cloud Build, אפשר להגדיר פריסות רציפות מ-GitHub. לדוגמה, אפשר לעיין במדריך למתחילים בנושא יצירת מאגר תבניות ופריסה רציפה מ-git.

  • אם בוחרים באפשרות Developer Connect, אפשר להגדיר פריסות רציפות ממאגרי GitHub,‏ GitLab ו-Bitbucket.

לחלופין, אפשר להשתמש ב-Cloud Deploy כדי להגדיר צינור עיבוד נתונים של אספקה רציפה (CD) לפריסת שירותי Cloud Run בסביבות מרובות.

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

  • יש לכם מאגר git עם Dockerfile או שבסיס הקוד שלכם כתוב באחת מהשפות שנתמכות על ידי Google Cloud's buildpacks.
  • מפעילים את Cloud Build API.

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

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

    להפעלת ה-API

  • אם בוחרים באפשרות Developer Connect, צריך להפעיל את Developer Connect API:

    הפעלה של ה-API

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

כדי לקבל את ההרשאות שנדרשות לפריסת שירותי Cloud Run מ-Git באמצעות Cloud Build או Developer Connect, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

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

הגדרת פריסה רציפה ממסוף Cloud Run

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

שירות חדש

  1. במסוף Google Cloud , נכנסים לדף Cloud Run:

    כניסה ל-Cloud Run

  2. אם אתם יוצרים שירות חדש, לוחצים על Connect repository (חיבור מאגר) כדי להציג את הטופס Create service (יצירת שירות).

    אם אתם משנים שירות קיים, מאתרים את השירות ברשימת השירותים ולוחצים עליו. לוחצים על Connect to repo (חיבור למאגר).

  3. בוחרים באפשרות Cloud Build או Developer Connect.

    1. אם בחרתם באפשרות Cloud Build, תוכלו לקרוא את המאמר בנושא הגדרה באמצעות Cloud Build.

    2. אם בחרתם באפשרות Developer Connect, תוכלו לקרוא את המאמר הגדרה באמצעות Developer Connect.

שירות קיים

  1. במסוף Google Cloud , נכנסים לדף Cloud Run:

    כניסה ל-Cloud Run

  2. מאתרים את השירות ברשימת השירותים ולוחצים עליו.

  3. לוחצים על Connect to repo ופועלים לפי ההוראות במאמר Set up with Cloud Build.

הגדרה באמצעות Cloud Build

בחלונית Set up with Cloud Build:

  1. בוחרים מאגר מהרשימה. שימו לב שטעינת רשימת המאגרים נמשכת כמה רגעים. פועלים לפי ההנחיה ולוחצים על הבא.

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

    אם אתם לא מוצאים את המאגר, לוחצים על הקישור ניהול מאגרים מקושרים. פועלים לפי ההוראות כדי להעניק ל-Cloud Build גישה למאגר.

  2. בשלב Build Configuration (הגדרת בנייה), ממלאים את האפשרויות:

    • Branch

      • מציין באיזה מקור צריך להשתמש כשמפעילים את הטריגר. אפשר להזין את regex כאן. הענפים התואמים מאומתים אוטומטית: אפשר לראות אותם מתחת לקלט. שימו לב: אם יש בדיוק ענף אחד שתואם, הטריגר יופעל אוטומטית אחרי היצירה.
    • סוג ה-build

      • Dockerfile: בוחרים באפשרות הזו אם רוצים שהמאגר ייבנה באמצעות Docker והוא מכיל קובץ Dockerfile.

        • במיקום המקור, מציינים את המיקום והשם של קובץ Docker. הספרייה הזו תשמש כהקשר של בניית Docker. כל הנתיבים צריכים להיות יחסיים לספרייה הנוכחית.
      • Go, ‏ Node.js, ‏ Python, ‏ Java,‏ ‎.NET Core, ‏ Ruby או PHP באמצעות buildpacks של Google Cloud: אם אתם רוצים ליצור את המאגר באמצעות buildpacks, בוחרים באפשרות הזו.

        • בספריית בניית ההקשר, מציינים את הספרייה.
        • בקטע Entrypoint (נקודת כניסה) (אופציונלי), מציינים את הפקודה להפעלת השרת. לדוגמה, gunicorn -p :8080 main:app ל-Python ו-java -jar target/myjar.jar ל-Java. כדי להשתמש בהתנהגות ברירת המחדל, צריך להשאיר את השדה הזה ריק.
        • בFunction target (רק לפריסות של פונקציות), מזינים את הפונקציה שרוצים להפעיל. אחרת, משאירים את השדה הזה ריק.
  3. לוחצים על Save.

  4. הדף נטען מחדש ותוחזרו לטופס יצירת שירות.

  5. בודקים את ההגדרות שנבחרו בקטע Source repository.

  6. ממלאים את שאר הטופס בקטע הגדרה.

  7. לוחצים על יצירה.

    תועברו לדף פרטי השירות, שבו תוכלו לעקוב אחרי ההתקדמות של ההגדרה של בנייה ופריסה ממאגר.

אחרי שכל השלבים יושלמו, תוכלו:

  • לוחצים על Edit repo settings במסוף Cloud Run כדי לערוך את טריגר לפיתוח גרסת Build במסוף Cloud Build.
  • כדי לראות את היסטוריית הבנייה, לוחצים על הקישור logs בשלב Building and deploying from repository.
  • צפייה בפרטי המקור בקטע פרטי הגרסה.

הגדרה ידנית של פריסה רציפה

אם אתם צריכים להשתמש בהליך ידני ולא בממשק המשתמש, תוכלו לעיין במאמר בנושא הגדרה ידנית של פריסה רציפה.

צירוף טריגר קיים של Cloud Build לשירות Cloud Run

אם כבר יש לכם טריגר קיים של Cloud Build, אתם יכולים לצרף אותו לשירות על ידי הוספת תווית לשירות Cloud Run.

כדי להוסיף תווית במסוף Cloud Run:

  1. במסוף Google Cloud , נכנסים לדף Cloud Run:

    כניסה ל-Cloud Run

  2. בוחרים את השירות.

  3. בשירות שנבחר, לוחצים על תוויות בחלק העליון של הדף כדי לפתוח את החלונית תוויות.

  4. מוסיפים תווית עם gcb-trigger-id כמפתח ואת המזהה הייחודי של טריגר לפיתוח גרסת Build כערך (לא שם הטריגר). אם המפתח gcb-trigger-id כבר קיים, משנים את הערך. במאמר הגדרת תוויות או שינוי שלהן מוסבר איך מגדירים את התווית.

הגדרה באמצעות Developer Connect

בחלונית הגדרה באמצעות Developer Connect:

  1. בוחרים מאגר ולוחצים על הבא.

    אם המאגר שרוצים לבחור לא מופיע, לוחצים על Link new repository (קישור מאגר חדש) כדי לפתוח את החלונית Link new repositories via Developer Connect (קישור מאגרים חדשים דרך Developer Connect). לוחצים על הכרטיסייה המתאימה כדי לקבל מידע נוסף על התחברות לאחד מספקי ניהול קוד המקור.

    GitHub

    באפשרויות GitHub,‏ GitHub Enterprise Cloud ו-GitHub Enterprise, לוחצים על Connect (חיבור).

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

    כדי להעניק הרשאות בחשבון GitHub ולקשר למאגרים, פועלים לפי ההוראות הבאות. ההנחיות שמוצגות בדפדפן האינטרנט תלויות בשאלה אם אפליקציית GitHub של Cloud Run כבר מותקנת בחשבון GitHub.

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

    אם מוצגת רשימה של חשבונות GitHub, כדי להתקין את האפליקציה ולקשר מאגרים, מבצעים את השלבים הבאים:

    1. בוחרים את החשבון ב-GitHub שבו רוצים להשתמש.

    2. בוחרים מאגר אחד או יותר שרוצים לתת גישה אליהם.

    אם מופיעה בקשה להשתמש מחדש בהתקנה קיימת של אפליקציה, צריך לבחור איפה להגדיר את האפליקציה על ידי השלמת השלבים הבאים:

    1. לוחצים על GitHub Account כדי לראות את החשבונות שבהם מותקנת אפליקציית Google Cloud Run. אם אתם רואים את החשבון שבו אתם רוצים להשתמש, לוחצים על אישור כדי לבחור אותו.

    2. אם החשבון שבו רוצים להשתמש לא מופיע, צריך לבצע את הפעולות הבאות:

      1. בוחרים באפשרות Install the GitHub App on another GitHub account (התקנת אפליקציית GitHub בחשבון אחר ב-GitHub) ולוחצים על Confirm (אישור).

      2. פועלים לפי השלבים ב-GitHub כדי לאשר את התקנת האפליקציה.

      3. בוחרים מאגר אחד או יותר שרוצים להעניק גישה אליהם.

    כשתיבת הדו-שיח נסגרת, התקנת האפליקציה הושלמה.

    GitLab

    באפשרות GitLab:

    1. בקטע Personal Access Tokens (אסימוני גישה אישיים), מזינים את האסימונים של החשבון:

      • טוקן גישה ל-API: מזינים את הטוקן האישי לגישה עם היקף api.
      • Read API access token: מזינים את טוקן הגישה האישי עם ההיקף read_api.

      באחריותכם לוודא שהאסימונים של GitLab נשארים בתוקף. משך החיים המקסימלי של אסימוני GitLab הוא 365 ימים, אלא אם צוין אחרת על ידי יוצר האסימון או אדמין. במסמכי GitLab מוסבר איך לנהל את ההגדרות של תפוגת האסימונים וההתראות על כך באסימוני גישה אישיים.

      מידע נוסף זמין במסמכי התיעוד של GitLab בנושא תפוגה של טוקני גישה אישיים.

    2. לוחצים על הצגת הגדרות נוספות כדי לראות הגדרות אופציונליות.

    3. אופציונלי: בקטע Encryption, בוחרים מפתח CMEK להצפנת סודות של Secret Manager שנוצרים על ידי Cloud Run.

    ‫GitLab Enterprise Edition

    באפשרות GitLab Enterprise Edition:

    1. בקטע כתובת ה-URL של המארח, מזינים את כתובת ה-URL של המארח שאליו רוצים להתחבר.

    2. בקטע Personal Access Tokens (אסימוני גישה אישיים), מזינים את האסימונים של החשבון:

      • טוקן גישה ל-API: מזינים את הטוקן האישי לגישה עם היקף api.
      • Read API access token: מזינים את טוקן הגישה האישי עם ההיקף read_api.

      באחריותכם לוודא שהאסימונים של GitLab נשארים בתוקף. משך החיים המקסימלי של אסימוני GitLab הוא 365 ימים, אלא אם צוין אחרת על ידי יוצר האסימון או אדמין. במסמכי GitLab מוסבר איך לנהל את ההגדרות של תפוגת האסימונים וההתראות על כך באסימוני גישה אישיים.

      מידע נוסף זמין במסמכי התיעוד של GitLab בנושא תפוגה של טוקני גישה אישיים.

    3. לוחצים על הצגת הגדרות נוספות כדי לראות הגדרות אופציונליות.

    4. אופציונלי: בקטע Encryption, בוחרים מפתח CMEK להצפנת סודות של Secret Manager שנוצרים על ידי Cloud Run.

    Bitbucket

    באפשרות Bitbucket Cloud:

    1. בקטע Workspace, מזינים את מזהה סביבת העבודה ב-Bitbucket Cloud.

    2. בקטע Access Tokens (אסימוני גישה), מזינים את אסימוני הגישה של Bitbucket:

    3. לוחצים על הצגת הגדרות נוספות כדי לראות הגדרות אופציונליות.

    4. אופציונלי: בקטע Encryption, בוחרים מפתח CMEK להצפנת סודות של Secret Manager שנוצרים על ידי Cloud Run.

    Bitbucket Data Center

    באפשרות Bitbucket Data Center:

    1. בקטע כתובת ה-URL של המארח, מזינים את כתובת ה-URL של מארח Bitbucket Data Center שאליו רוצים להתחבר.

    2. בקטע Access Tokens, מזינים את אסימוני הגישה של Bitbucket Cloud:

      • אסימון גישה לאדמין: מזינים את האסימון עם גישת היקף האדמין למאגר.

      • טוקן גישה לקריאה: מזינים את הטוקן עם גישת היקף הקריאה של המאגר.

    3. לוחצים על הצגת הגדרות נוספות כדי לראות הגדרות אופציונליות.

    4. אופציונלי: בקטע Encryption, בוחרים מפתח CMEK להצפנת סודות של Secret Manager שנוצרים על ידי Cloud Run.
  2. לוחצים על Connect. התהליך הזה יכול להימשך כמה שניות.

  3. בשלב Build Configuration (הגדרת בנייה), ממלאים את האפשרויות:

    • Branch

      • מציין באיזה מקור צריך להשתמש כשמפעילים את הטריגר. אפשר להזין את regex כאן. הענפים התואמים מאומתים אוטומטית: אפשר לראות אותם מתחת לקלט. שימו לב: אם יש בדיוק ענף אחד שתואם, הטריגר יופעל אוטומטית אחרי היצירה.
    • סוג ה-build

      • Dockerfile: בוחרים באפשרות הזו אם רוצים שהמאגר ייבנה באמצעות Docker והוא מכיל קובץ Dockerfile.

        • במיקום המקור, מציינים את המיקום והשם של קובץ Docker. הספרייה הזו תשמש כהקשר של בניית Docker. כל הנתיבים צריכים להיות יחסיים לספרייה הנוכחית.
      • Go, ‏ Node.js, ‏ Python, ‏ Java,‏ ‎.NET Core, ‏ Ruby או PHP באמצעות buildpacks של Google Cloud: אם אתם רוצים ליצור את המאגר באמצעות buildpacks, בוחרים באפשרות הזו.

        • בספריית בניית ההקשר, מציינים את הספרייה.
        • בקטע Entrypoint (נקודת כניסה) (אופציונלי), מציינים את הפקודה להפעלת השרת. לדוגמה, gunicorn -p :8080 main:app ל-Python ו-java -jar target/myjar.jar ל-Java. כדי להשתמש בהתנהגות ברירת המחדל, צריך להשאיר את השדה הזה ריק.
        • בFunction target (רק לפריסות של פונקציות), מזינים את הפונקציה שרוצים להפעיל. אחרת, משאירים את השדה הזה ריק.
  4. לוחצים על Save.

  5. ממלאים את שאר הטופס בקטע הגדרה.

  6. כשמסיימים להגדיר את השירות, לוחצים על Create (יצירה) כדי לפרוס את האימג' ב-Cloud Run ומחכים שהפריסה תסתיים.

  7. לוחצים על הקישור לכתובת ה-URL שמוצגת כדי לפתוח את נקודת הקצה הייחודית והיציבה של השירות שפרסתם.