일정에 따라 작업 실행

이 페이지에서는 Cloud Scheduler를 사용하여 일정에 따라 Cloud Run 작업을 실행하는 방법을 설명합니다.

필요한 역할

이 페이지에 설명된 작업에 필요한 권한을 얻으려면 관리자에게 Cloud Run 작업에 대한 IAM 역할을 부여해 달라고 요청하세요.

  • Cloud Scheduler 관리자(roles/cloudscheduler.admin) 역할 또는 cloudscheduler.jobs.create 권한이 있는 커스텀 역할
  • Google Cloud CLI를 사용하여 작업을 실행할 수 있는 Cloud Run 호출자(roles/run.invoker) 역할이나 Google Cloud 콘솔을 사용하여 작업을 실행할 수 있는 Cloud Run 개발자(roles/run.developer) 역할

Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할Cloud Run IAM 권한을 참조하세요. Cloud Run 작업이 Cloud 클라이언트 라이브러리와 같은 Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한액세스 관리를 참조하세요.

시작하기 전에

Cloud Run 작업을 만듭니다.

일정에 따라 실행되도록 Cloud Run 작업 구성

일정에 따라 Cloud Run 작업을 실행하려면 다음 안내를 따르세요.

콘솔

  1. Cloud Run 작업으로 이동

  2. 일정에 따라 실행하려는 작업을 클릭합니다.

  3. 트리거 탭을 클릭합니다.

  4. 스케줄러 트리거 추가를 클릭합니다.

  5. 프로젝트에 아직 Cloud Scheduler API를 사용 설정하지 않은 경우 맨 오른쪽 패널에서 API 사용 설정을 클릭하라는 메시지가 표시됩니다.

  6. Cloud Scheduler 작업 양식 작성

    이미지

  7. 일정 정의에서 다음을 수행합니다.

    1. Cloud Scheduler 작업에 이름을 지정합니다.

    2. Cloud Scheduler 작업의 리전을 선택합니다. Cloud Run 작업에 사용되는 리전과 일치하지 않아도 됩니다.

    3. unix-cron 형식(예: 0 12 * * *)을 사용하여 작업 실행 빈도를 지정합니다.

    4. 시간대를 선택합니다.

  8. 계속을 클릭합니다.

  9. 서비스 계정 드롭다운 메뉴에서 현재 Cloud Run 서비스를 호출할 수 있는 권한이 있는 서비스 계정을 선택합니다.

  10. 만들기를 클릭하여 지정된 빈도로 Cloud Run 작업을 실행하는 Cloud Scheduler 작업을 만듭니다.

명령줄

  1. 먼저 Cloud Run 작업을 만들어야 합니다.

  2. 다음 명령어를 실행합니다.

    gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
      --location SCHEDULER_REGION \
      --schedule="SCHEDULE" \
      --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com

    바꾸기

    • SCHEDULER_JOB_NAME을 스케줄러 작업에 지정할 이름으로 바꿉니다.
    • SCHEDULER_REGION을 Cloud Scheduler에서 지원하는 리전으로 바꿉니다(예: europe-west2).
    • CLOUD_RUN_REGION을 Cloud Run 작업의 리전으로 바꿉니다. 미리보기의 경우 europe-west9을 사용합니다.
    • SCHEDULE을 원하는 빈도로 바꿉니다(예: 0 12 * * *).
    • PROJECT-ID를 프로젝트 ID로 바꿉니다.
    • PROJECT-NUMBER를 프로젝트 번호로 바꿉니다.
    • JOB-NAME을 Cloud Run 작업으로 바꿉니다.

Terraform

Cloud Run 작업을 실행하는 Cloud Scheduler 작업을 만들려면 다음 안내를 따르세요.

resource "google_cloud_scheduler_job" "job" {
  provider         = google-beta
  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://${google_cloud_run_v2_job.default.location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${data.google_project.project.number}/jobs/${google_cloud_run_v2_job.default.name}:run"

    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]
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

Cloud Scheduler는 지정된 빈도로 Cloud Run 작업을 실행합니다.

다음 단계

이 기능을 사용한 후에는 다음을 수행할 수 있습니다.