Antes de começar
A lista a seguir descreve os requisitos ao usar Workflows para implantar e executar um fluxo de trabalho de pools de workers do Cloud Run:
-
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 a API Cloud Run Admin e as APIs Workflows.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pela função Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pela função Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder funções.
Funções exigidas
Para receber as permissões necessárias para implantar e executar pools de workers do Cloud Run com Workflows, peça ao administrador para conceder a você as seguintes funções do IAM:
- Administrador do Cloud Run (
roles/run.admin) no pool de workers do Cloud Run - Editor de fluxos de trabalho (
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 o 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 workers do Cloud Run interage com Google Cloud APIs, 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 workers do Cloud Run se ainda não tiver feito isso. Você vai referenciar o nome do pool de workers 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 pool de workers do Cloud Run.
No diretório inicial, crie um arquivo YAML para o 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 criado 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 as funções necessárias, por exemplo:
SERVICE_ACCOUNT_NAME@PROJECT_ID.PROJECT_NUMBER-compute@
- 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 do Google Cloud console:
Para conferir o status e os resultados da execução, acesse a página de detalhes Workflows e selecione o fluxo de trabalho:
Verifique se o campo
manualInstanceCountfoi alterado na execução mais recente do fluxo de trabalho.Para verificar se a atualização foi bem-sucedida no Cloud Run, acesse a página de pools de workers:
Verifique se a contagem de escalonamento manual do pool de workers foi alterada.