Nesta página, descrevemos como executar jobs do Cloud Run em uma programação usando o Cloud Scheduler.
Funções exigidas
Para receber as permissões necessárias para as operações descritas nesta página, peça ao administrador para conceder a você os papéis do IAM no job do Cloud Run:
- Administrador do Cloud Scheduler (
roles/cloudscheduler.admin) ou um papel personalizado com a permissãocloudscheduler.jobs.create. - Invocador do Cloud Run (
roles/run.invoker) para executar jobs usando a Google Cloud CLI ou Desenvolvedor do Cloud Run (roles/run.developer) para executar jobs usando o console Google Cloud .
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 job do Cloud Run interagir com APIs doGoogle 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.
Antes de começar
- Crie um job do Cloud Run se ainda não tiver feito isso.
Ative a API Cloud Scheduler no projeto:
gcloud services enable cloudscheduler.googleapis.com
Configurar um job do Cloud Run para ser executado em uma programação
É possível configurar um job do Cloud Run para ser executado de acordo com uma programação usando o Google Cloud console, a CLI gcloud ou o Terraform:
Console
No console do Google Cloud , acesse a página de jobs do Cloud Run:
Clique no job que você quer executar em uma programação.
Clique na guia Gatilhos.
Clique em Adicionar gatilho do programador.
No formulário de job do Cloud Scheduler, siga estas etapas:
Em Nome, insira um nome para o job do Cloud Scheduler.
Em Região, selecione uma região para o job do Cloud Scheduler. Ele não precisa corresponder à região usada para o job do Cloud Run.
Especifique a frequência da execução do job usando o formato unix-cron, por exemplo,
0 12 * * *Selecione seu fuso horário.
Clique em Continuar.
Na seção Configurar a execução, selecione a conta de serviço que tem permissão para invocar o job atual do Cloud Run.
Clique em Criar para criar o job do Cloud Scheduler que executará o job do Cloud Run na frequência especificada.
gcloud
Execute este comando:
gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
--location SCHEDULER_REGION \
--schedule="SCHEDULE" \
--uri="https://run.googleapis.com/v2/projects/PROJECT_ID/locations/CLOUD_RUN_REGION/jobs/JOB:run" \
--http-method POST \
--oauth-service-account-email PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua:
SCHEDULER_JOB_NAME: o nome que você quer dar ao job do programador.SCHEDULER_REGION: uma região compatível com o Cloud Scheduler, por exemplo,europe-west2.SCHEDULE: a frequência necessária, por exemplo,0 12 * * *.PROJECT_ID: o ID do projeto.CLOUD_RUN_REGION: a região do seu job do Cloud Run. Por exemplo,europe-west1.JOB: o nome do seu job do Cloud Run;PROJECT_NUMBER: o número do projeto.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_job
na configuração do Terraform:O Cloud Scheduler executará o job do Cloud Run na frequência especificada.
Agendar seu job em um perímetro do VPC Service Controls
Se o projeto Google Cloud estiver dentro de um perímetro do VPC Service Controls em uma rede de nuvem privada virtual, a integração do Cloud Scheduler com o VPC Service Controls vai oferecer suporte a jobs do Cloud Run como destino usando o seguinte formato de URI:
https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB:run
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .REGION: a Google Cloud região do job.JOB: o nome do seu job do Cloud Run;
Para mais informações sobre como configurar o VPC Service Controls para o Cloud Run, consulte Como usar o VPC Service Controls (VPC SC). Para mais informações sobre como usar o Cloud Scheduler com o VPC Service Controls, consulte Proteger jobs cron com o VPC Service Controls.
A seguir
Após usar esse recurso, você poderá fazer o seguinte: