Depois de criar um pool de trabalhadores do Cloud Run, use os Workflows para automatizar o escalonamento dele. Isso permite ajustar a contagem de instâncias com base em eventos externos, lógica personalizada ou programações.
Antes de começar
A lista a seguir descreve os requisitos ao usar o Workflows para implantar e executar um fluxo de trabalho de pools de workers do Cloud Run:
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
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.
Ative as APIs Cloud Run Admin e Workflows.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.
Funções exigidas
Para receber as permissões necessárias para implantar e executar pools de workers do Cloud Run com o Workflows, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Administrador do Cloud Run (
roles/run.admin) no pool de worker do Cloud Run -
Editor do Workflows (
roles/workflows.editor) no projeto -
Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade do serviço
Para permitir que Workflows atualizem o pool de workers do Cloud Run, a conta de serviço usada para implantar seu fluxo de trabalho precisa ter a seguinte função:
- Administrador do Cloud Run (
roles/run.admin)
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o pool de trabalhadores do Cloud Run interagir com APIsGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Criar um pool de workers do Cloud Run
Crie um pool de trabalhadores do Cloud Run se ainda não tiver feito isso. Você vai referenciar o nome do pool de worker do Cloud Run ao executar o fluxo de trabalho mais tarde.
Criar, implantar e executar o fluxo de trabalho
O fluxo de trabalho a seguir atualiza a contagem de instâncias do seu pool de workers do Cloud Run.
No diretório inicial, crie um arquivo YAML para seu fluxo de trabalho, como
update-cr-worker-pool.yaml, e copie e cole o conteúdo a seguir no arquivo: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}Implante o fluxo de trabalho e associe-o a uma conta de serviço especificada:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
Substitua:
- WORKFLOW_NAME: o nome do fluxo de trabalho, como
update-worker-pool. O nome do fluxo de trabalho precisa corresponder ao nome do arquivo YAML que você criou anteriormente. - REGION: a região em que o pool de workers do Cloud Run está
implantado. Por exemplo,
europe-west1. - SERVICE_ACCOUNT: o e-mail da conta de serviço que recebeu os papéis necessários, por exemplo:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comPROJECT_NUMBER-compute@developer.gserviceaccount.com
- WORKFLOW_NAME: o nome do fluxo de trabalho, como
Execute o fluxo de trabalho com os detalhes do pool de workers e a contagem de instâncias:
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
Substitua:
- WORKFLOW_NAME: o nome do fluxo de trabalho.
- REGION: a região em que o pool de workers do Cloud Run está
implantado. Por exemplo,
europe-west1. - WORKER_POOL_NAME: o nome do pool de workers.
- INSTANCE_COUNT: o número modificado de instâncias para o pool de workers, por exemplo,
3.
Verificar as atualizações
Depois de executar o fluxo de trabalho, você pode conferir as atualizações nos seguintes locais no console do Google Cloud :
Para conferir o status e os resultados da execução, acesse a página de detalhes do Workflows e selecione seu fluxo de trabalho:
Verifique se o campo
manualInstanceCountmudou na execução mais recente do fluxo de trabalho.Para verificar se a atualização foi concluída no Cloud Run, acesse a página pools de trabalhadores:
Verifique se a contagem de escalonamento manual do pool de workers mudou.