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

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

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

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

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

시작하기 전에

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

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. 프로젝트를 만들거나 Google Cloud 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택할 수 있습니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
    • 프로젝트 만들기: Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud

  6. 이 가이드에 기존 프로젝트를 사용하는 경우 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다. 새 프로젝트를 만든 경우에는 이미 필요한 권한이 있습니다.

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

  8. Cloud Scheduler 및 Pub/Sub API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Google Cloud CLI를 설치합니다.

  10. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  11. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  12. 프로젝트를 만들거나 Google Cloud 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택할 수 있습니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
    • 프로젝트 만들기: Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud

  13. 이 가이드에 기존 프로젝트를 사용하는 경우 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다. 새 프로젝트를 만든 경우에는 이미 필요한 권한이 있습니다.

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

  15. Cloud Scheduler 및 Pub/Sub API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

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

필요한 역할

빠른 시작을 완료하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

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-east1" \
    --message-body="Hello world"

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

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

작업 실행

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

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

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

그런 다음 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

    프로젝트 삭제: Google Cloud

    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로 바꿉니다.

다음 단계