gcloud CLI를 사용하여 크론 작업 예약 및 실행

이 빠른 시작에서는 Cloud Scheduler를 사용하여 몇 가지 기본 작업을 수행하기 위해 gcloud CLI를 사용하는 방법을 알아봅니다.

이 빠른 시작에서는 다음을 수행합니다.

  1. Cloud Scheduler 작업 대상으로 설정할 Pub/Sub 주제를 만듭니다.
  2. Cloud Scheduler를 사용하여 크론 작업을 만들고 작업에 반복 일정을 구성합니다.
  3. 작업을 실행합니다.
  4. 작업이 성공적으로 실행되었는지 확인합니다.

Cloud Scheduler에는 무료 등급이 있으므로 이 빠른 시작을 실행해도 비용이 발생하지 않습니다. 자세한 내용은 가격 책정을 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  11. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Pub/Sub 주제 및 구독 만들기

Pub/Sub 주제는 게시자가 메시지를 전송할 수 있는 리소스입니다. 주제에 게시된 메시지를 받으려면 해당 주제에 대한 구독을 만들어야 합니다.

  1. 크론 작업에 대상으로 사용할 Pub/Sub 주제를 설정합니다.

    gcloud pubsub topics create cron-topic
    

    이렇게 하면 cron-topic이라는 주제가 생성됩니다.

  2. 메시지를 수신하고 작업 결과를 보려면 Pub/Sub 구독을 만듭니다.

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

Cloud Scheduler를 사용하여 크론 작업 만들기

gcloud scheduler jobs create pubsub 명령어를 사용하여 반복 일정으로 Pub/Sub 대상으로 전송되는 크론 작업이라는 작업 단위를 설정합니다. 일정은 unix-cron을 기반으로 하는 형식을 사용하여 지정됩니다. 자세한 내용은 크론 작업 형식 및 시간대를 참조하세요.

gcloud scheduler jobs create pubsub my-cron-job \
    --schedule="30 16 * * 7" \
    --topic=cron-topic \
    --location="us-central1" \
    --message-body="Hello world"

일요일 오후 4시 30분에 Pub/Sub 주제에 'Hello world' 메시지를 전송하는 작업을 만들었습니다.

이제 작업을 실행할 수 있습니다.

작업 실행

지정된 일정에 따라 실행하는 것 외에도 작업을 강제로 즉시 실행할 수 있습니다.

gcloud scheduler jobs run my-cron-job --location="us-central1"

초기 구성때문에 프로젝트에서 만든 첫 번째 작업을 실행하는 데 몇 분 정도 걸릴 수 있습니다.

그런 다음 Pub/Sub 주제가 메시지를 수신했는지 확인할 수 있습니다.

Pub/Sub에서 결과 확인

Pub/Sub 주제가 해당 작업의 메시지를 수신하는지 확인하세요.

  1. 구독에서 Pub/Sub 메시지 가져오기:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    처음에 가져온 메시지가 없으면 명령어를 다시 실행합니다.

  2. 작업 실행 결과를 봅니다. 출력은 다음과 비슷하게 표시됩니다.

    DATA: Hello world!
    MESSAGE_ID: 5028933846601543
    ORDERING_KEY:
    ATTRIBUTES:
    DELIVERY_ATTEMPT:
    ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
    

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 Google Cloud 프로젝트를 삭제하면 됩니다.

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

또는 이 빠른 시작에서 만든 리소스를 삭제합니다.

  1. 크론 작업을 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.

    gcloud scheduler jobs delete MY_JOB \
        --location="LOCATION"
    

    다음을 바꿉니다.

    • MY_JOB: 삭제할 작업의 이름입니다.
    • LOCATION: 작업의 위치입니다. 기본적으로 연결된 앱이 있는 경우 현재 프로젝트의 App Engine 앱 위치가 사용됩니다.
  2. Pub/Sub 주제를 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.

    gcloud pubsub topics delete TOPIC_ID
    

    TOPIC_ID를 삭제할 Pub/Sub 주제의 ID로 바꿉니다.

  3. Pub/Sub 구독을 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    

    SUBSCRIPTION_ID를 삭제할 Pub/Sub 구독의 ID로 바꿉니다.

다음 단계