Use o Cloud Scheduler para acionar um serviço do Cloud Run com segurança em uma programação. É semelhante ao uso dos cron jobs.
Os possíveis casos de uso incluem:
- Como executar backups em tempo hábil
- Executar tarefas de administração recorrentes, como:
- Como gerar novamente um sitemap
- Como excluir revisões, conteúdo, configuração ou dados antigos
- Como sincronizar conteúdo entre sistemas de dados
- Como processar notificações diárias por e-mail
- Como verificar e gerar relatórios sobre o acesso a serviços de downstream
 
- Como gerar documentos, como faturas
Esta página mostra como usar com segurança o Cloud Scheduler com o Cloud Run no mesmo projeto Google Cloud .
Antes de começar
Ative a API Cloud Scheduler no projeto que você está usando.
Como criar e implantar seu serviço
Para criar e implantar:
- No seu serviço, implemente o job que você quer executar em uma programação. 
- Observe de qual tipo de solicitação seu serviço espera receber as solicitações de job (por exemplo, - GETou- POST). Ao criar o job programado que invoca o serviço, você precisa especificar o método HTTP que corresponde a ele.
- Quando você implanta o serviço que está usando com o Cloud Scheduler, selecione ** Exigir autenticação**. Não permitir acesso público. 
O exemplo a seguir mostra como implantar um serviço do Cloud Run usando o Terraform:
Substitua us-docker.pkg.dev/cloudrun/container/hello por uma referência à sua própria imagem de contêiner.
Como criar uma conta de serviço para o Cloud Scheduler
Você precisa criar uma conta de serviço para associar ao Cloud Scheduler e permitir que essa conta de serviço invoque seu serviço do Cloud Run. É possível usar uma conta de serviço existente para representar o Cloud Scheduler ou criar uma nova.
Para criar uma conta de serviço e conceder a ela permissão para invocar o serviço do Cloud Run:
Console
- No console Google Cloud , acesse a página Contas de serviço. 
- Selecione um projeto. 
- Insira um nome de conta de serviço a ser exibido no console Google Cloud . - O console Google Cloud gera um ID de conta de serviço com base nesse nome. Edite o ID se for necessário. Não será possível alterar o ID depois. 
- Opcional: digite uma descrição da conta de serviço. 
- Clique em Criar e continuar. 
- Opcional: clique no campo Selecionar um papel. 
- Selecione Cloud Run > Chamador do Cloud Run. 
- Clique em Concluído. 
Linha de comando
- Crie a conta de serviço: - gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --display-name "DISPLAYED_SERVICE_ACCOUNT_NAME" - Substituir - SERVICE_ACCOUNT_NAME por um nome em letras minúsculas exclusivo no projeto Google Cloud , por exemplo, my-invoker-service-account-name.
- DISPLAYED_SERVICE_ACCOUNT_NAME pelo nome que você quer exibir para essa conta de serviço, por exemplo, no console, My Invoker Service Account.
 
- SERVICE_ACCOUNT_NAME por um nome em letras minúsculas exclusivo no projeto Google Cloud , por exemplo, 
- Para o Cloud Run, conceda à conta de serviço permissão para invocar o serviço: - gcloud run services add-iam-policy-binding SERVICE \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/run.invoker - Substituir - SERVICE pelo nome do serviço que você quer que seja invocado pelo Cloud Scheduler.
- SERVICE_ACCOUNT_NAME pelo nome da conta de serviço;
- PROJECT_ID com o Google Cloud ID do projeto.
 
- Conceda à conta de serviço o acesso ao projeto a fim de que ela tenha permissão para concluir ações específicas nos recursos do projeto: - gcloud projects add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=roles/run.invoker - Substituir - RESOURCE_ID: o ID do projeto do Google Cloud . 
- PRINCIPAL: um identificador do principal ou do membro, que geralmente tem o seguinte formato: PRINCIPAL_TYPE:ID. Por exemplo, - user:my-user@example.com. Para ver uma lista completa dos valores que PRINCIPAL pode ter, consulte a referência de vinculação de políticas.
 
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Para criar uma conta de serviço usando o Terraform, siga estas etapas:
Como criar um job do Cloud Scheduler
Você precisará criar um job que invoque seu serviço em horários especificados. É possível usar o console ou a linha de comando:
Para criar um job, você pode usar o console ou a linha de comando do gcloud. Clique na guia adequada:
Console
- Acesse a página do Console do Cloud Scheduler. 
- Clique em Criar job.  
- Dê um nome ao job. 
- Especifique a frequência, ou o intervalo, de execução do job usando uma string de configuração. Por exemplo, a string - 0 */3 * * *executa o job a cada 3 horas. É possível usar aqui qualquer string compatível com o formato crontab.- Para mais informações, consulte Como configurar programações de jobs. 
- Na lista suspensa, escolha o fuso horário da frequência do job. 
- Especifique - HTTPcomo destino:- Especifique o URL totalmente qualificado do seu serviço, por exemplo, - https://myservice-abcdef-uc.a.run.app. O job enviará solicitações para este URL.
- Especifique o método HTTP: o método precisa corresponder ao que o serviço do Cloud Run implantado anteriormente está esperando. O padrão é - POST.
- Se você quiser, pode especificar também os dados que serão enviados ao destino. Esses dados são enviados no corpo da solicitação quando o método HTTP - POSTou- PUTfor selecionado.
- Clique em Mais para mostrar as configurações de autenticação. 
- No menu suspenso, selecione Adicionar token OIDC. 
- No campo Conta de serviço copie o e-mail da conta de serviço da conta de serviço criada anteriormente. 
- No campo Público, copie o URL completo do seu serviço. 
 
- Clique em Criar para criar e salvar o job. 
Linha de comando
Você precisa usar a autenticação do OIDC para acessar um serviço autenticado do Cloud Run a partir do Cloud Scheduler. A autenticação do OIDC inclui a conta de serviço e as sinalizações de público-alvo. Para mais informações, consulte Usar autenticação para destinos HTTP.
Para criar o job do Cloud Scheduler:
gcloud scheduler jobs create http test-job --schedule "5 * * * *"
--http-method=HTTP-METHOD
--uri=SERVICE-URL
--oidc-service-account-email=SERVICE-ACCOUNT-EMAIL
--oidc-token-audience=SERVICE-URL
Substituir
- HTTP-METHOD pelo método HTTP (por exemplo, GET, POST, PUT etc.).
- SERVICE-URL pelo URL do serviço.
- SERVICE-ACCOUNT-EMAIL pelo e-mail da sua conta de serviço.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Para criar um job do Cloud Scheduler para o serviço do Cloud Run:
O serviço do Cloud Run será acionado por meio de uma solicitação do job pelo Cloud Scheduler na frequência definida. Confirme e monitore isso examinando os registros desse serviço.
A seguir
- Como gerar e visualizar registros
- Como monitorar a integridade e o desempenho
- Como acionar a partir do Pub/Sub
- Como invocar com HTTPS