gcloud CLI를 사용하여 크론 작업 예약 및 실행
이 빠른 시작에서는 Cloud Scheduler를 사용하여 몇 가지 기본 작업을 수행하기 위해 gcloud CLI를 사용하는 방법을 알아봅니다.
이 빠른 시작에서는 다음을 수행합니다.
- Cloud Scheduler 작업 대상으로 설정할 Pub/Sub 주제를 만듭니다.
- Cloud Scheduler를 사용하여 크론 작업을 만들고 작업에 반복 일정을 구성합니다.
- 작업을 실행합니다.
- 작업이 성공적으로 실행되었는지 확인합니다.
Cloud Scheduler에는 무료 등급이 있으므로 이 빠른 시작을 실행해도 비용이 발생하지 않습니다. 자세한 내용은 가격 책정을 참조하세요.
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. Google Cloud신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 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
-
이 가이드에 기존 프로젝트를 사용하는 경우 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다. 새 프로젝트를 만든 경우에는 이미 필요한 권한이 있습니다.
Cloud Scheduler 및 Pub/Sub API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 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
-
이 가이드에 기존 프로젝트를 사용하는 경우 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다. 새 프로젝트를 만든 경우에는 이미 필요한 권한이 있습니다.
Cloud Scheduler 및 Pub/Sub API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com
필요한 역할
빠른 시작을 완료하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Scheduler 관리자 (
roles/cloudscheduler.admin) - Pub/Sub 편집자 (
roles/pubsub.editor)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
Pub/Sub 주제 및 구독 만들기
Pub/Sub 주제는 게시자가 메시지를 전송할 수 있는 리소스입니다. 주제에 게시된 메시지를 받으려면 해당 주제에 대한 구독을 만들어야 합니다.
크론 작업에 대상으로 사용할 Pub/Sub 주제를 설정합니다.
gcloud pubsub topics create cron-topic이렇게 하면
cron-topic이라는 주제가 생성됩니다.메시지를 수신하고 작업 결과를 보려면 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 주제가 해당 작업의 메시지를 수신하는지 확인하세요.
구독에서 Pub/Sub 메시지 가져오기:
gcloud pubsub subscriptions pull cron-sub --limit 5처음에 가져온 메시지가 없으면 명령어를 다시 실행합니다.
작업 실행 결과를 봅니다. 출력은 다음과 비슷하게 표시됩니다.
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
또는 이 빠른 시작에서 만든 리소스를 삭제합니다.
크론 작업을 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.
gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"다음을 바꿉니다.
MY_JOB: 삭제할 작업의 이름입니다.LOCATION: 작업의 위치입니다. 기본적으로 연결된 앱이 있는 경우 현재 프로젝트의 App Engine 앱 위치가 사용됩니다.
Pub/Sub 주제를 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.
gcloud pubsub topics delete TOPIC_IDTOPIC_ID를 삭제할 Pub/Sub 주제의 ID로 바꿉니다.Pub/Sub 구독을 삭제합니다. Cloud Shell 또는 gcloud CLI를 설치한 머신에서 다음 명령어를 실행합니다.
gcloud pubsub subscriptions delete SUBSCRIPTION_IDSUBSCRIPTION_ID를 삭제할 Pub/Sub 구독의 ID로 바꿉니다.
다음 단계
Cloud Scheduler에 대해 자세히 알아보기