בדף הזה מוסבר איך להריץ משימות של Cloud Run לפי לוח זמנים באמצעות Cloud Scheduler.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לביצוע הפעולות שמתוארות בדף הזה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM בעבודת Cloud Run:
- אדמין של Cloud Scheduler (
roles/cloudscheduler.admin) או תפקיד בהתאמה אישית עם ההרשאהcloudscheduler.jobs.create. - Cloud Run Invoker (
roles/run.invoker) כדי להריץ משימות באמצעות Google Cloud CLI, או Cloud Run Developer (roles/run.developer) כדי להריץ משימות באמצעות מסוף Google Cloud .
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
לפני שמתחילים
- אם עדיין לא יצרתם עבודת Cloud Run, עליכם ליצור אחת.
מפעילים את Cloud Scheduler API בפרויקט:
gcloud services enable cloudscheduler.googleapis.com
הגדרת משימת Cloud Run לביצוע לפי לוח זמנים
אפשר להגדיר הפעלה של משימת Cloud Run לפי לוח זמנים באמצעות מסוףGoogle Cloud , ה-CLI של gcloud או Terraform:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על העבודה שרוצים להפעיל לפי לוח זמנים.
לוחצים על הכרטיסייה טריגרים.
לוחצים על Add Scheduler Trigger (הוספת טריגר של מתזמן).
בטופס של משימת Cloud Scheduler, פועלים לפי השלבים הבאים:
בשדה שם, מזינים שם למשימה ב-Cloud Scheduler.
בקטע אזור, בוחרים אזור למשימה ב-Cloud Scheduler. היא לא צריכה להיות זהה לאזור שבו נעשה שימוש בעבודת Cloud Run.
מציינים את התדירות של הרצת העבודה בפורמט unix-cron. לדוגמה,
0 12 * * *בוחרים את אזור הזמן.
לוחצים על Continue.
בקטע Configure the execution, בוחרים את חשבון השירות שיש לו הרשאה להפעיל את משימת Cloud Run הנוכחית.
לוחצים על Create כדי ליצור את המשימה ב-Cloud Scheduler שתבצע את המשימה ב-Cloud Run בתדירות שצוינה.
gcloud
מריצים את הפקודה הבאה:
gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
--location SCHEDULER_REGION \
--schedule="SCHEDULE" \
--uri="https://run.googleapis.com/v2/projects/PROJECT_ID/locations/CLOUD_RUN_REGION/jobs/JOB:run" \
--http-method POST \
--oauth-service-account-email PROJECT_NUMBER-compute@developer.gserviceaccount.com
מחליפים את מה שכתוב בשדות הבאים:
-
SCHEDULER_JOB_NAME: השם שרוצים לתת למשימה של הכלי לתזמון. -
SCHEDULER_REGION: אזור שנתמך על ידי Cloud Scheduler – לדוגמה,europe-west2. -
SCHEDULE: התדירות הנדרשת, לדוגמה0 12 * * *. PROJECT_ID: מזהה הפרויקט.-
CLOUD_RUN_REGION: האזור של משימת Cloud Run. לדוגמה,europe-west1. -
JOB: השם של המשימה ב-Cloud Run. -
PROJECT_NUMBER: מספר הפרויקט.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בתצורת Terraform:משימת Cloud Run תופעל על ידי Cloud Scheduler בתדירות שצוינה.
תזמון של עבודות בתוך אזור של VPC Service Controls
אם Google Cloud הפרויקט שלכם נמצא בתוך גבולות גזרה של VPC Service Controls ברשת ענן וירטואלי פרטי, השילוב של Cloud Scheduler עם VPC Service Controls תומך במשימות Cloud Run כיעד באמצעות פורמט ה-URI הבא:
https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB:run
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
REGION: Google Cloud האזור של המשימה. -
JOB: השם של המשימה ב-Cloud Run.
מידע נוסף על הגדרת VPC Service Controls ל-Cloud Run זמין במאמר שימוש ב-VPC Service Controls (VPC SC). מידע נוסף על שימוש ב-Cloud Scheduler עם VPC Service Controls זמין במאמר אבטחת משימות cron באמצעות VPC Service Controls.
המאמרים הבאים
אחרי שתשתמשו בתכונה הזו, תוכלו לבצע את הפעולות הבאות: