Cloud Scheduler를 사용하여 워크플로 예약

이 페이지에서는 Cloud Scheduler를 사용하여 매주 월요일 오전 9시마다 또는 15분마다와 같은 특정 일정으로 워크플로를 실행하는 방법을 설명합니다.

시작하기 전에

  1. 예약하려는 워크플로가 아직 없으면 워크플로를 만듭니다.
  2. Cloud Scheduler API를 사용 설정합니다.

    API 사용 설정

워크플로 예약

  1. Cloud Scheduler가 Workflows API에 요청을 수행하려면 먼저 서비스 계정을 만들어야 합니다.

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    여기서 SERVICE_ACCOUNT_NAME은 새 서비스에 지정할 이름입니다.

  2. Cloud Scheduler 명령어를 실행할 계정에 서비스 계정 사용 권한을 부여합니다.

  3. 계정이 워크플로를 트리거할 수 있도록 새 서비스 계정에 workflows.invoker 역할을 부여합니다.

    gcloud projects add-iam-policy-binding PROJECT_NAME \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_NAME은 Google Cloud 프로젝트 이름입니다.
    • SERVICE_ACCOUNT_NAME은 이전에 만든 서비스 계정의 이름입니다.
  4. 인증을 위해 이전에 만든 서비스 계정을 사용하여 워크플로를 트리거하는 Cloud Scheduler 작업을 만듭니다. 예를 들어 워크플로가 5분마다 실행되도록 예약하려면 unix-cron 형식을 사용하여 간격을 정의합니다.

    gcloud beta scheduler jobs create http JOB_NAME \
      --schedule="*/5 * * * *" \
      --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
      --time-zone="TIME_ZONE" \
      --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com"

    각 항목의 의미는 다음과 같습니다.

    • JOB_NAME은 Cloud Scheduler 작업에 제공하는 이름입니다.
    • PROJECT_NAME은 Google Cloud 프로젝트 이름입니다.
    • REGION_NAME은 워크플로가 있는 리전입니다(예: us-central1).
    • WORKFLOW_NAME은 실행 일정을 예약할 워크플로의 이름입니다.
    • TIME_ZONE은 사용자가 제공한 일정을 해석하기 위해 Cloud Scheduler에서 사용되는 시간대입니다.
    • SERVICE_ACCOUNT_NAME은 이전에 만든 서비스 계정의 이름입니다.

    이제 워크플로가 5분마다 실행됩니다.

다음 단계