Este tutorial mostra como programar uma função do Cloud Run HTTP direcionando um endpoint HTTP no Cloud Scheduler. Use uma função HTTP quando precisar que a função tenha um endpoint de URL e responda a solicitações HTTP, como para webhooks.
Como alternativa, se você criou uma função do CloudEvents, use os acionadores de eventos do Eventarc para programar a função a responder a eventos no projeto. O Eventarc pode acionar mensagens em um tópico do Pub/Sub, mudanças em um bucket do Cloud Storage e muito mais. Para mais informações, consulte Tipos de funções do Cloud Run.
Programar a execução de uma função do Cloud Run é um caso de uso comum do Cloud Scheduler. Com este tutorial, você vai:
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
É necessário conceder o papel de invocador do Cloud Run porque, nas funções do Cloud Run, as permissões de invocação estão disponíveis ao gerenciar o serviço subjacente do Cloud Run.
Criar uma função do Cloud Run em HTTP
Crie uma função HTTP acionada pelo Cloud Scheduler.
No console do Google Cloud, acesse a página do Cloud Run.
Clique em Escrever uma função.
Na seção Configure, faça o seguinte:
- No campo Nome do serviço, insira um nome para a função.
- Na lista Região, selecione uma região.
- Não modifique o idioma de execução padrão.
Para a autenticação, selecione Exigir autenticação.
Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.
Para mais informações, consulte Como autenticar para invocação.
Aceite todos os padrões e clique em Criar.
Copie o URL HTTP da função.
Criar um job do Cloud Scheduler
Crie um job do Cloud Scheduler que acione uma ação usando HTTP.
No console do Google Cloud, acesse a página do Cloud Scheduler.
Clique em
Criar job.Insira um nome para o job.
Na lista Região, selecione uma região.
Especifique a frequência do job usando um formato unix-cron:
30 16 * * 7
Para mais informações, consulte Formato e fuso horário do cron job.
Na lista Fuso horário, selecione um fuso horário.
Clique em Continuar.
Na lista Tipo de destino, selecione HTTP.
No campo URL, insira o URL HTTP da função que você copiou anteriormente.
Na lista Cabeçalho Auth, selecione Adicionar token OIDC.
Na lista Conta de serviço, selecione a conta de serviço que você criou anteriormente.
No campo Público, insira o URL HTTP da função que você copiou anteriormente.
Clique em Criar.
Você criou um job cron que executa sua função do Cloud Run às 16h30 aos domingos.
Executar o job do Cloud Scheduler
Agora você pode executar o job que criou.
No console do Google Cloud, acesse a página do Cloud Scheduler.
Marque a caixa de seleção do job que você criou e clique em Forçar execução.
Quando é invocado inicialmente, a configuração e a execução do primeiro job criado em um projeto podem levar alguns minutos.
Depois que o job for executado, o Status da última execução vai indicar
Success
.
Verificar os resultados nas funções do Cloud Run
É possível verificar se a função do Cloud Run é acionada e executada pelo cron job.
No console do Google Cloud, acesse a página do Cloud Run.
Selecione Filtrar serviços > Tipo de implantação > Função. Isso filtra a lista de serviços para mostrar apenas as funções.
Clique no nome da função.
A página Detalhes do serviço é aberta e mostra as métricas do serviço.
Clique na guia Registros.
Você vai encontrar uma entrada de registro semelhante a
POST 200 146 B 5 ms Google-Cloud-Scheduler https://FUNCTION_NAME
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir projeto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Excluir recursos do tutorial
No console do Google Cloud, acesse a página do Cloud Scheduler.
Clique na caixa de seleção que está próxima ao job.
Clique em
Excluir e confirme a exclusão.No console do Google Cloud, acesse a página do Cloud Run.
Marque a caixa de seleção ao lado do serviço.
Clique em
Excluir e confirme a exclusão.No Console do Google Cloud, acesse a página Contas de serviço.
Marque a caixa de seleção ao lado da conta de serviço criada.
Clique em
Excluir e confirme a exclusão.
A seguir
- Usar o Cloud Scheduler para acionar o Cloud Run em uma programação
- Escreva funções do CloudEvents para programar sua função para responder a eventos no seu projeto.