פיתוח ויצירה של משימת Python ב-Cloud Run
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
-
אם משתמשים בפרויקט קיים, מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה. אם משתמשים בפרויקט חדש, לא צריך לוודא כי כבר יש את ההרשאות הנדרשות.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
-
אם משתמשים בפרויקט קיים, מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה. אם משתמשים בפרויקט חדש, לא צריך לוודא כי כבר יש את ההרשאות הנדרשות.
-
מפעילים את Cloud Run Admin API ואת Cloud Build APIs:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable run.googleapis.com
cloudbuild.googleapis.com אחרי שמפעילים את Cloud Run Admin API, נוצר באופן אוטומטי חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
- אפשר לעיין במחירון של Cloud Run או להשתמש במחשבון התמחור כדי לקבל הערכה של העלויות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- אדמין Cloud Run (
roles/run.admin) בפרויקט - Cloud Run Source Developer (
roles/run.sourceDeveloper) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות - מציג היומנים (
roles/logging.viewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
נותנים לחשבון השירות ב-Cloud Build גישה לפרויקט
כברירת מחדל, Cloud Build משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כחשבון השירות שמוגדר כברירת מחדל ב-Cloud Build כדי לבנות את קוד המקור ואת משאב Cloud Run, אלא אם משנים את ההתנהגות הזו.
כדי ש-Cloud Build יוכל לבנות את המקורות, צריך להקצות לחשבון השירות של Cloud Build את התפקיד Cloud Run Builder (roles/run.builder) בפרויקט:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
מחליפים את PROJECT_ID במזהה הפרויקט שלכם ב- Google Cloudואת SERVICE_ACCOUNT_EMAIL_ADDRESS בכתובת האימייל של חשבון השירות של Cloud Build. אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כחשבון השירות ב-Cloud Build, אתם צריכים להשתמש בפורמט הבא עבור כתובת האימייל בחשבון השירות:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
מחליפים את PROJECT_NUMBER במספר הפרויקט ב- Google Cloud.
הוראות מפורטות לאיתור מזהה הפרויקט ומספר הפרויקט זמינות במאמר יצירה וניהול של פרויקטים.
לוקח כמה דקות עד שההרשאה של התפקיד Cloud Run builder מתעדכנת.
כתיבת המשרה לדוגמה
כדי לכתוב עבודה ב-Python:
יוצרים ספרייה חדשה בשם
jobsועוברים אליה:mkdir jobs cd jobsיוצרים קובץ
main.pyלקוד המשרה בפועל. מעתיקים אליו את שורות הדוגמה הבאות:משימות ב-Cloud Run מאפשרות למשתמשים לציין את מספר המשימות שהמשימה צריכה לבצע. קוד לדוגמה זה מראה איך להשתמש במשתנה הסביבה המובנה
CLOUD_RUN_TASK_INDEX. כל משימה מייצגת עותק אחד של הקונטיינר שפועל. שימו לב שהמשימות מבוצעות בדרך כלל במקביל. שימוש בכמה משימות יכול להיות שימושי אם כל משימה יכולה לעבד באופן עצמאי קבוצת משנה של הנתונים.כל משימה מודעת לאינדקס שלה, שמאוחסן במשתנה הסביבה
CLOUD_RUN_TASK_INDEX. משתנה הסביבה המובנהCLOUD_RUN_TASK_COUNTמכיל את מספר המשימות שסופקו בזמן ההפעלה של העבודה באמצעות הפרמטר--tasks.הקוד שמוצג גם מראה איך לנסות מחדש לבצע משימות, באמצעות משתנה הסביבה המובנה
CLOUD_RUN_TASK_ATTEMPT, שמכיל את מספר הפעמים שהמשימה הזו נוסתה מחדש. המספר מתחיל מ-0 בניסיון הראשון וגדל ב-1 בכל ניסיון חוזר, עד--max-retries.הקוד מאפשר גם ליצור כשלים כדי לבדוק ניסיונות חוזרים, וליצור יומני שגיאות כדי לראות איך הם נראים.
יוצרים קובץ טקסט בשם
Procfileבלי סיומת קובץ, עם התוכן הבא:
הקוד שלכם הושלם ומוכן לאריזה במאגר.
יצירת קונטיינר של משימות Build, שליחתו אל Artifact Registry ופריסה ב-Cloud Run
במדריך למתחילים הזה משתמשים בפריסה ממקור, שיוצרת את הקונטיינר, מעלה אותו ל-Artifact Registry ופורסת את העבודה ב-Cloud Run:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
כאשר PROJECT_ID הוא מזהה הפרויקט ו-REGION הוא האזור, לדוגמה, europe-west1. שימו לב שאפשר לשנות את הפרמטרים השונים לערכים שרוצים להשתמש בהם לצורכי בדיקה. SLEEP_MS מדמה עבודה וגורם ל-X% מהמשימות להיכשל, כדי שתוכלו להתנסות בהרצת משימות במקביל ובניסיון חוזר של משימות שנכשלו.FAIL_RATE
הפעלת משימה ב-Cloud Run
כדי להריץ את העבודה שיצרתם:
gcloud run jobs execute job-quickstart --region REGION
מחליפים את REGION באזור שבו השתמשתם כשיצרתם ופרסתם את העבודה, לדוגמה europe-west1.
הסרת המשאבים
כדי להימנע מחיובים נוספים בחשבון Google Cloud , מוחקים את כל המשאבים שהצבתם באמצעות המדריך הזה.
מחיקת המאגר
ב-Cloud Run, החיוב מתבצע רק על הזמן שבו המשימה פועלת. עם זאת, יכול להיות שעדיין תחויבו על אחסון קובץ האימג' של הקונטיינר ב-Artifact Registry. כדי למחוק מאגרי Artifact Registry, פועלים לפי השלבים שמפורטים במאמר מחיקת מאגרים במסמכי התיעוד של Artifact Registry.
מחיקת המשרה
העלות של משימות ב-Cloud Run נצברת רק כשמשימת עבודה מופעלת. כדי למחוק את עבודת Cloud Run, מבצעים את אחד מהשלבים הבאים:
המסוף
כדי למחוק משרה:
נכנסים ל-Cloud Run במסוף Google Cloud :
ברשימת המשרות, מאתרים את המשרה שרוצים למחוק ולוחצים על תיבת הסימון שלה כדי לבחור אותה.
לוחצים על Delete. הפעולה הזו תסיים את כל ההרצות של המשימות שנמצאות בתהליך ואת כל המכונות של הקונטיינרים שפועלות.
gcloud
כדי למחוק משימה, מריצים את הפקודה הבאה:
gcloud run jobs delete JOB_NAME
מחליפים את JOB_NAME בשם של המשימה.
מחיקת פרויקט הבדיקה
כשמוחקים פרויקט ב- Google Cloud , החיוב על כל המשאבים באותו פרויקט מופסק. כדי לשחרר את כל Google Cloud המשאבים בפרויקט, פועלים לפי השלבים הבאים:
כדי למחוק Google Cloud פרויקט:
gcloud projects delete PROJECT_ID
המאמרים הבאים
מידע נוסף על בניית מאגר תגים ממקור קוד ודחיפה למאגר זמין במאמרים הבאים: