הפעלת משימות לפי לוח זמנים

בדף הזה מוסבר איך להריץ משימות של 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, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

לפני שמתחילים

  1. אם עדיין לא יצרתם עבודת Cloud Run, עליכם ליצור אחת.
  2. מפעילים את Cloud Scheduler API בפרויקט:

    gcloud services enable cloudscheduler.googleapis.com
    

הגדרת משימת Cloud Run לביצוע לפי לוח זמנים

אפשר להגדיר הפעלה של משימת Cloud Run לפי לוח זמנים באמצעות מסוףGoogle Cloud , ה-CLI של gcloud או Terraform:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Run jobs:

    כניסה לדף Cloud Run jobs

  2. לוחצים על העבודה שרוצים להפעיל לפי לוח זמנים.

  3. לוחצים על הכרטיסייה טריגרים.

  4. לוחצים על Add Scheduler Trigger (הוספת טריגר של מתזמן).

  5. בטופס של משימת Cloud Scheduler, פועלים לפי השלבים הבאים:

    1. בשדה שם, מזינים שם למשימה ב-Cloud Scheduler.

    2. בקטע אזור, בוחרים אזור למשימה ב-Cloud Scheduler. היא לא צריכה להיות זהה לאזור שבו נעשה שימוש בעבודת Cloud Run.

    3. מציינים את התדירות של הרצת העבודה בפורמט unix-cron. לדוגמה, 0 12 * * *

    4. בוחרים את אזור הזמן.

    5. לוחצים על Continue.

    6. בקטע Configure the execution, בוחרים את חשבון השירות שיש לו הרשאה להפעיל את משימת Cloud Run הנוכחית.

  6. לוחצים על 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:
resource "google_cloud_scheduler_job" "job" {
  name             = "schedule-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  attempt_deadline = "320s"
  region           = "us-central1"
  project          = data.google_project.project.project_id

  retry_config {
    retry_count = 3
  }

  http_target {
    http_method = "POST"
    uri         = "https://run.googleapis.com/v2/projects/${data.google_project.project.project_id}/locations/${google_cloud_run_v2_job.default.location}/jobs/${google_cloud_run_v2_job.default.name}:run"
    body        = base64encode("{}")

    headers = {
      "Content-Type" = "application/json"
    }

    oauth_token {
      service_account_email = google_service_account.cloud_run_invoker_sa.email
    }
  }

  depends_on = [resource.google_project_service.cloudscheduler_api, resource.google_cloud_run_v2_job.default, resource.google_cloud_run_v2_job_iam_binding.binding]
}

משימת 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.

המאמרים הבאים

אחרי שתשתמשו בתכונה הזו, תוכלו לבצע את הפעולות הבאות: