Cloud Run에서 Python 작업 빌드 및 만들기
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Cloud Run Admin API 및 Cloud Build API를 사용 설정합니다.
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Cloud Run Admin API를 사용 설정하면 Compute Engine 기본 서비스 계정이 자동으로 생성됩니다.
- Cloud Build가 소스를 빌드할 수 있게 하려면 다음을 실행하여 Compute Engine 기본 서비스 계정에 Cloud Build 서비스 계정 역할을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
PROJECT_NUMBER
를 Google Cloud 프로젝트 번호로,PROJECT_ID
를 Google Cloud 프로젝트 ID로 바꿉니다. 프로젝트 ID와 프로젝트 번호를 찾는 방법은 프로젝트 만들기 및 관리를 참조하세요.Compute Engine 기본 서비스 계정에 Cloud Build 서비스 계정 역할을 부여하려면 전파하는 데 몇 분 정도 걸립니다.
샘플 작업 작성
Python으로 작업을 작성하려면 다음 안내를 따르세요.
jobs
라는 새 디렉터리를 만들고 이 디렉터리로 이동합니다.mkdir jobs cd jobs
실제 작업 코드에 대한
main.py
파일을 만듭니다. 다음 샘플 줄을 복사합니다.Cloud Run 작업을 사용하면 작업이 실행될 태스크의 수를 지정할 수 있습니다. 이 샘플 코드에서는 기본 제공
CLOUD_RUN_TASK_INDEX
환경 변수를 사용하는 방법을 보여줍니다. 각 태스크는 실행 중인 컨테이너의 복사본 하나를 나타냅니다. 태스크는 일반적으로 병렬로 실행됩니다. 각 태스크에서 데이터 하위 집합을 독립적으로 처리할 수 있는 경우 여러 태스크를 사용하는 것이 유용합니다.각 태스크는
CLOUD_RUN_TASK_INDEX
환경 변수에 저장된 색인을 인식합니다. 기본 제공CLOUD_RUN_TASK_COUNT
환경 변수에는 작업 실행 시--tasks
매개변수를 통해 제공되는 태스크 수가 포함됩니다.또한 표시된 코드는 기본 제공
CLOUD_RUN_TASK_ATTEMPT
환경 변수를 사용하여 태스크를 재시도하는 방법을 보여줍니다. 이 환경 변수에는 처음 시도할 때 0부터 시작하여 연속으로 재시도할 때마다 1씩 증가하여--max-retries
까지 이 태스크를 재시도한 횟수가 포함됩니다.또한 코드를 사용하면 재시도를 테스트하기 위한 방법으로 오류를 생성하고 오류 로그를 생성하여 어떻게 표시되는지 확인할 수 있습니다.
파일 확장자가 없는
Procfile
이라는 텍스트 파일을 만들고 다음을 포함합니다.
코드가 완료되었으며 컨테이너에 패키징될 수 있습니다.
작업 컨테이너를 빌드하여 Artifact Registry로 전송하고 Cloud Run에 배포
중요: 이 빠른 시작에서는 빠른 시작에 사용 중인 프로젝트에 소유자 역할이나 편집자 역할이 있다고 가정합니다. 그렇지 않은 경우 소스에서 Cloud Run 리소스를 배포하는 데 필요한 권한은 Cloud Run 소스 개발자 역할을 참조하세요.
이 빠른 시작에서는 소스에서 배포를 사용하여 컨테이너를 빌드하고, Artifact Registry에 업로드하고, Cloud Run에 작업을 배포합니다.
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
여기서 PROJECT_ID는 프로젝트 ID이고 REGION은 리전입니다(예: us-central1
). 다양한 매개변수를 테스트 목적으로 사용할 값으로 변경할 수 있습니다.
SLEEP_MS
는 작업을 시뮬레이션하고 FAIL_RATE
로 인해 태스크의 X
%가 실패하므로 동시 로드를 사용하여 실패한 태스크를 재시도할 수 있습니다.
Cloud Run에서 작업 실행
방금 만든 작업을 실행하려면 다음 명령어를 실행합니다.
gcloud run jobs execute job-quickstart --region REGION
REGION을 작업을 만들고 배포할 때 사용한 리전으로 바꿉니다(예: us-central1
).
다음 단계
코드 소스에서 컨테이너를 빌드하고 저장소로 푸시하는 방법에 대한 자세한 내용은 다음을 참조하세요.