Workflows로 Cloud Run 작업자 풀 확장

Cloud Run 작업자 풀을 만든 후 Workflows를 사용하여 확장을 자동화할 수 있습니다. 이를 통해 외부 이벤트, 맞춤 로직 또는 일정에 따라 인스턴스 수를 조정할 수 있습니다.

시작하기 전에

다음 목록은 Workflows를 사용하여 Cloud Run 작업자 풀 워크플로를 배포하고 실행할 때의 요구사항을 설명합니다.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Cloud Run Admin API 및 Workflows API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

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

    API 사용 설정

필요한 역할

워크플로를 사용하여 Cloud Run 작업자 풀을 배포하고 실행하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

Workflows에서 Cloud Run 작업자 풀을 업데이트할 수 있도록 하려면 워크플로를 배포하는 데 사용되는 서비스 계정에 다음 역할이 있어야 합니다.

Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할Cloud Run IAM 권한을 참조하세요. Cloud Run 작업자 풀이 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한액세스 관리를 참조하세요.

Cloud Run 작업자 풀 만들기

아직 만들지 않았다면 Cloud Run 작업자 풀을 만듭니다. 나중에 워크플로를 실행할 때 Cloud Run 작업자 풀의 이름을 참조합니다.

워크플로 생성, 배포, 실행

다음 워크플로는 Cloud Run 작업자 풀의 인스턴스 수를 업데이트합니다.

  1. 홈 디렉터리에서 워크플로의 새 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}
    
  2. 워크플로를 배포하고 지정된 서비스 계정과 연결합니다.

    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.com
      • PROJECT_NUMBER-compute@developer.gserviceaccount.com
  3. 작업자 풀의 세부정보와 인스턴스 수로 워크플로를 실행합니다.

    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 콘솔의 다음 위치에서 업데이트를 확인할 수 있습니다.

  • 실행 상태와 결과를 보려면 워크플로 세부정보 페이지로 이동하여 워크플로를 선택합니다.

    Workflows로 이동

    워크플로의 가장 최근 실행에서 manualInstanceCount 필드가 변경되었는지 확인합니다.

  • Cloud Run에서 업데이트가 성공했는지 확인하려면 작업자 풀 페이지로 이동합니다.

    Cloud Run으로 이동

    작업자 풀의 수동 확장 개수가 변경되었는지 확인합니다.