כברירת מחדל, כל משימה פועלת למשך 10 דקות לכל היותר. אפשר לשנות את משך הזמן הזה לזמן קצר יותר או ארוך יותר, עד 168 שעות (7 ימים). במשימות שמשתמשות במעבדי GPU, הזמן הקצוב לתפוגה המקסימלי הוא שעה אחת.
אפשר להגדיר את הזמן הקצוב לתפוגת המשימה כמו שמתואר בדף הזה. אין הגבלת זמן מפורשת לביצוע של פעולה: כשהפעולה מסתיימת, כל המשימות מסתיימות.
היחידות מציינות משך זמן. אפשר לציין את משך הזמן הקצוב לתפוגה כמספר שלם בשניות, בדקות או בשעות. לדוגמה, כדי להגדיר את משך הזמן הקצוב לתפוגה כ-10 דקות ו-5 שניות, צריך לציין את הערך 605 שניות.
אם מופעלים ניסיונות חוזרים בעבודה, הגדרת הזמן הקצוב לתפוגה חלה על כל ניסיון של משימה. אם ניסיון ההפעלה לא יושלם בפרק הזמן הזה, הוא ייפסק. ככל שהמשימה פועלת זמן רב יותר, כך גדל הסיכוי שתיתקלו בבעיות שיגרמו לכשלונה, כמו כשלים בתלות במורד הזרם, שגיאות של חוסר זיכרון או בעיות בתשתית. מומלץ להפעיל ניסיונות חוזרים לכל המשימות, אבל במיוחד למשימות עם פעולות ארוכות טווח.
אירועי תחזוקה
משרות עוברות מדי פעם אירועי תחזוקה. במהלך אירוע תחזוקה, כל המשימות שמתבצעות כרגע מועברות מהמכונה הנוכחית למכונה אחרת. תהיה הפסקה קצרה בעיבוד בזמן העברת המשימה.
תהליך ההעברה שומר על מצב המשימה, עם יוצא דופן אחד בולט: חיבורים יוצאים לרשת VPC נקטעים במהלך אירועי תחזוקה. מומלץ להשתמש בספריות לקוח שיכולות לטפל באיפוסים מדי פעם של החיבור.
בכל פעם שמשימה מתחילה ומסיימת את ההעברה, Cloud Run מדפיס הודעה ביומן.
בנוסף, אם רוצים לעקוב אחרי אירועי תחזוקה או לטפל בהם בצורה ספציפית, אפשר להשתמש באות SIGTSTP שנשלח 10 שניות לפני העברת משימה. אחרי ההעברה, המשימה מקבלת אות SIGCONT מיד אחרי שהיא מופעלת מחדש.
בדוגמה הבאה של Go מוצגת פונקציה שתופסת את האותות האלה ומדפיסה רשומה ביומן:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
Cloud Run Developer (
roles/run.developer) on the Cloud Run job -
משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת זמן קצוב לתפוגת משימות
כדי לציין זמן קצוב לתפוגה של משימה בעבודת Cloud Run:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה General.
- בשדה Task timeout (פסק זמן למשימה), מציינים את משך הזמן המקסימלי למשימות של העבודה הנוכחית, ובוחרים Time unit (יחידת זמן). אפשר לציין את משך הזמן הקצוב לתפוגה רק כערך מספרי של שנייה, דקה או שעה. לדוגמה, כדי להגדיר משך זמן של 10 דקות ו-5 שניות, בשדה Task timeout מציינים
605ובוחרים באפשרות second בתפריט Time unit.
- בשדה Task timeout (פסק זמן למשימה), מציינים את משך הזמן המקסימלי למשימות של העבודה הנוכחית, ובוחרים Time unit (יחידת זמן). אפשר לציין את משך הזמן הקצוב לתפוגה רק כערך מספרי של שנייה, דקה או שעה. לדוגמה, כדי להגדיר משך זמן של 10 דקות ו-5 שניות, בשדה Task timeout מציינים
לוחצים על יצירה או על עדכון.
gcloud
למשרה שאתם יוצרים:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
החלפה
- JOB_NAME בשם של המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - TIMEOUT עם משך הזמן המקסימלי של משימות העבודה, תוך ציון משך הזמן והיחידות: לדוגמה,
10m5sהוא עשר דקות וחמש שניות.
כדי לעדכן משרה:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מעדכנים את המאפיין
timeoutSeconds::apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
מחליפים את:
- JOB_NAME בשם של המשימה.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - TIMEOUT עם משך הזמן המקסימלי למשימות של העבודה, תוך ציון כמות הזמן והיחידות. אפשר לציין זמן רק כערך מספרי שלם בשניות, בדקות או בשעות. לדוגמה, כדי להגדיר משך זמן של 10 דקות ו-5 שניות, מציינים
605.
אפשר גם לציין פרטים נוספים של הגדרה, כמו משתני סביבה או מגבלות זיכרון.
מעדכנים את ההגדרה הקיימת של העבודה:
gcloud run jobs replace job.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בקובץ התצורה של Terraform:הצגת הגדרות הזמן הקצוב לתפוגה של משימות
כדי לראות את הגדרות הזמן הקצוב לתפוגה של המשימה הנוכחית בעבודת Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה שמעניינת אתכם כדי לפתוח את הדף פרטי המשרה.
לוחצים על View and Edit job configuration (הצגה ועריכה של הגדרות העבודה).
מאתרים את הגדרת הזמן הקצוב לתפוגה של המשימה בפרטי התצורה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs describe JOB_NAME
מאתרים את הגדרת הזמן הקצוב לתפוגה של המשימה בתצורה שמוחזרת.