Workflows로 Cloud Run 작업자 풀 확장

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

시작하기 전에

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

  1. 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. Google Cloud신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $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 사용 설정

필요한 역할

Workflows를 사용하여 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)
  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 세부정보 페이지로 이동하여 워크플로를 선택합니다.

    Workflows로 이동

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

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

    Cloud Run으로 이동

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