הגדרות הזמן הקצוב לתפוגה של בקשות ב-Cloud Run מאפשרות לכם להגדיר את משך הזמן המקסימלי שבו השירות צריך להחזיר תשובה. אם השירות לא מגיב במסגרת המגבלה הזו, Cloud Run סוגר את החיבור לרשת ומחזיר שגיאת HTTP 504.
סגירת החיבור לא מסיימת את המכונה של מאגר התגים. יכול להיות שהקונטיינר ימשיך לעבד את הבקשה שבוטלה, מה שעלול להפריע לטיפול בבקשות אחרות. כדי למנוע זמן קצוב לתפוגה, הגדירו זמן קצוב לתפוגה שגבוה מזמן הביצוע הצפוי, או עקבו אחרי זמן הביצוע שנותר כדי לבצע ניקוי ולחזור מוקדם.
משך הזמן הקצוב לתפוגה של שירותים
כברירת מחדל, הזמן הקצוב לתפוגה מוגדר ל-5 דקות (300 שניות), ואפשר להאריך אותו עד ל-60 דקות (3,600 שניות).
כשמפעילים את השירות מאירועי Eventarc, ממינויי דחיפה של Pub/Sub או מ-Cloud Scheduler, חל הזמן הקצוב לתפוגה של השירותים האלה.
אפשר לשנות את ההגדרה הזו כשפורסים קובץ אימג' של קונטיינר או כשמעדכנים את הגדרת השירות.
בנוסף לשינוי של זמן הקצוב לתפוגה של בקשות ב-Cloud Run, צריך גם לבדוק את מסגרת השפה כדי לראות אם יש לה הגדרה משלה לזמן הקצוב לתפוגה של בקשות, שגם אותה צריך לעדכן. יכול להיות שחלק מהלקוחות של שירות Cloud Run יגדירו זמן קצוב לתפוגה מחמיר יותר.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח ב-Cloud Run (
roles/run.developer) בשירות Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם תפקידים נוספים בפרויקט ובחשבון השירות של Cloud Build.
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרה ועדכון של זמן קצוב לתפוגה של בקשה
כל שינוי בהגדרות יוצר גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אפשר להגדיר את הזמן הקצוב לתפוגה של בקשה באמצעות מסוף Google Cloud , שורת הפקודה של ה-CLI של gcloud או קובץ YAML כשיוצרים שירות חדש או פורסים גרסה חדשה.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני. לאחר מכן לוחצים על Containers, Networking, Security כדי להרחיב את דף הגדרת השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Scaling.
בקטע Requests, בשדה Request timeout, מזינים את ערך הזמן הקצוב לתפוגה שרוצים להשתמש בו, בשניות. אפשר להשתמש בערכים שנעים בין
1ל-3600שניות.כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
אתם יכולים לעדכן את זמן הקצוב לתפוגה של הבקשה לגרסה נתונה בכל שלב, באמצעות הפקודה הבאה:
gcloud run services update SERVICE --timeout=TIMEOUT
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: שם השירות.
TIMEOUT: הזמן שבו צריך להחזיר תשובה, באמצעות ערך של מספר שלם או ערך משך זמן מוחלט – לדוגמה,
1m20s, שהוא דקה אחת ו-20 שניות. אם משתמשים בערך מסוג מספר שלם, המערכת מניחה שהיחידה היא שניות. הערך שאתם מציינים חייב להיות קטן מ-60 דקות.
אפשר גם להגדיר את הזמן הקצוב לתפוגה של הבקשה במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --timeout=TIMEOUT
מחליפים את מה שכתוב בשדות הבאים:
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, המאגר REPO_NAME כבר צריך להיות קיים. הפורמט של כתובת ה-URL הואLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - TIMEOUT: הזמן שבו צריך להחזיר תשובה, באמצעות ערך של מספר שלם או ערך של משך זמן. לדוגמה,
1m20sמציין דקה אחת ו-20 שניות. אם משתמשים בערך מסוג מספר שלם, יחידת המידה תהיה שניות. הערך שאתם מציינים צריך להיות פחות מ-60 דקות.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
timeoutSeconds:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: VALUE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, המאגר REPO_NAME כבר צריך להיות קיים. הפורמט של כתובת ה-URL הואLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - VALUE: הזמן הקצוב לתפוגה שנבחר, בשניות.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
כברירת מחדל, הפקודה
gcloud run services replaceמשתמשת בקובץservice.yamlאם הוא קיים.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את הקוד הבא למשאבgoogle_cloud_run_v2_service בתצורה של Terraform:מחליפים את 300s בזמן הקצוב לתפוגה של הבקשה שנבחרה לשירות.
הצגת ההגדרות של הזמן הקצוב לתפוגה של בקשות
כדי לראות את ההגדרות הנוכחיות של זמן הקצוב לתפוגה של בקשות בשירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות הרצוי כדי לפתוח את הדף Service details.
לוחצים על הכרטיסייה Scaling כדי לראות את ההגדרות.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הגדרת הזמן הקצוב לתפוגה של הבקשה בהגדרות שהוחזרו.