Cloud Run 작업자 풀을 만든 후 Workflows를 사용하여 확장을 자동화할 수 있습니다. 이를 통해 외부 이벤트, 맞춤 로직 또는 일정에 따라 인스턴스 수를 조정할 수 있습니다.
시작하기 전에
다음 목록은 Workflows를 사용하여 Cloud Run 작업자 풀 워크플로를 배포하고 실행할 때의 요구사항을 설명합니다.
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Cloud Run Admin API 및 Workflows API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기
필요한 역할
워크플로를 사용하여 Cloud Run 작업자 풀을 배포하고 실행하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud Run 작업자 풀에 대한 Cloud Run 관리자(
roles/run.admin) -
프로젝트에 대한 워크플로 편집기 (
roles/workflows.editor) -
서비스 ID에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser) 역할
Workflows에서 Cloud Run 작업자 풀을 업데이트할 수 있도록 하려면 워크플로를 배포하는 데 사용되는 서비스 계정에 다음 역할이 있어야 합니다.
- Cloud Run 관리자(
roles/run.admin)
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 작업자 풀이 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
Cloud Run 작업자 풀 만들기
아직 만들지 않았다면 Cloud Run 작업자 풀을 만듭니다. 나중에 워크플로를 실행할 때 Cloud Run 작업자 풀의 이름을 참조합니다.
워크플로 생성, 배포, 실행
다음 워크플로는 Cloud Run 작업자 풀의 인스턴스 수를 업데이트합니다.
홈 디렉터리에서 워크플로의 새 YAML 파일(예:
update-cr-worker-pool.yaml)을 만들고 다음 콘텐츠를 파일에 복사하여 붙여넣습니다.main: params: [args] steps: - init: assign: - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - region: ${args.region} - workerPoolName: ${args.workerPool} - instanceCount: ${args.instanceCount} - workerPoolUrl: ${"https://run.googleapis.com/v2/projects/" + project + "/locations/" + region + "/workerPools/" + workerPoolName} - updateWorkerPool: call: http.patch args: url: ${workerPoolUrl} query: updateMask: "scaling.manualInstanceCount" auth: type: OAuth2 body: scaling: manualInstanceCount: ${int(instanceCount)} result: updateResult - returnOutput: return: ${updateResult.body}워크플로를 배포하고 지정된 서비스 계정과 연결합니다.
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
다음을 바꿉니다.
- WORKFLOW_NAME: 워크플로의 이름입니다(예:
update-worker-pool). 워크플로 이름은 이전에 만든 YAML 파일의 이름과 일치해야 합니다. - REGION: Cloud Run 작업자 풀이 배포된 리전입니다(예:
europe-west1). - SERVICE_ACCOUNT: 필수 역할이 부여된 서비스 계정 이메일입니다(예:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comPROJECT_NUMBER-compute@developer.gserviceaccount.com
- WORKFLOW_NAME: 워크플로의 이름입니다(예:
작업자 풀의 세부정보와 인스턴스 수로 워크플로를 실행합니다.
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
다음을 바꿉니다.
- WORKFLOW_NAME: 워크플로의 이름입니다.
- REGION: Cloud Run 작업자 풀이 배포된 리전입니다(예:
europe-west1). - WORKER_POOL_NAME: 작업자 풀 이름
- INSTANCE_COUNT: 수정된 작업자 풀의 인스턴스 수입니다(예:
3).
업데이트 확인
워크플로를 실행한 후 Google Cloud 콘솔의 다음 위치에서 업데이트를 확인할 수 있습니다.
실행 상태와 결과를 보려면 워크플로 세부정보 페이지로 이동하여 워크플로를 선택합니다.
워크플로의 가장 최근 실행에서
manualInstanceCount필드가 변경되었는지 확인합니다.Cloud Run에서 업데이트가 성공했는지 확인하려면 작업자 풀 페이지로 이동합니다.
작업자 풀의 수동 확장 개수가 변경되었는지 확인합니다.