הגדרות הזמן הקצוב לתפוגה של בקשות ב-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 שלCloud de Confiance , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת פסק זמן לבקשה ועדכון
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות עתידיות יקבלו באופן אוטומטי את הגדרת התצורה הזו, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אתם יכולים להגדיר את זמן הקצוב לתפוגה של בקשה באמצעות מסוף Cloud de Confiance , שורת הפקודה של ה-CLI של gcloud או קובץ YAML כשאתם יוצרים שירות חדש או פורסים גרסה חדשה.
המסוף
נכנסים ל-Cloud Run במסוף Cloud de Confiance by S3NS :
בתפריט הניווט של 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
אם קיים קובץ
service.yaml, הפקודהgcloud run services replaceמשתמשת בו כברירת מחדל.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:מחליפים את 300s בערך של הזמן הקצוב לתפוגה של הבקשה שנבחר לשירות.
צפייה בהגדרות הזמן הקצוב לתפוגת בקשה
כדי לראות את הגדרות הזמן הקצוב לתפוגה של הבקשה הנוכחית בשירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Cloud de Confiance by S3NS :
לוחצים על השירות שרוצים לראות כדי לפתוח את הדף פרטי השירות.
לוחצים על הכרטיסייה שינוי גודל כדי לראות את ההגדרות.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מחפשים את הגדרת פסק הזמן של הבקשה בתצורה שמוחזרת.