Neste tutorial, mostramos como acionar uma função HTTP do Cloud usando Cloud Scheduler e ao direcionar para um endpoint HTTP. Use uma função HTTP quando a função precisa ter um endpoint de URL e responder a solicitações HTTP, como quanto aos webhooks.
Também é possível programe uma função orientada a eventos quando sua função deve ser acionada diretamente em resposta a eventos em sua projeto do Google Cloud, como mensagens em um tópico do Pub/Sub ou alterações em um do bucket do Cloud Storage. Para mais informações, consulte Tipos de Cloud Functions.
Programar a execução de uma função do Cloud é uma prática caso de uso do Cloud Scheduler. Com este tutorial, você vai:
- Criar uma função HTTP do Cloud simples
- Criar um job do Cloud Scheduler.
- executar o job do Cloud Scheduler;
- Verifique se a função do Cloud foi acionada pelo Job do Cloud Scheduler.
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
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, 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.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.
-
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 Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.
-
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 Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
- Por padrão, o Cloud Functions usa o
conta de serviço padrão do Compute Engine
para a conta de serviço do ambiente de execução. Use essa conta de serviço para testar
neste tutorial. No entanto, dependendo da configuração da política da organização, os
conta de serviço padrão pode não receber automaticamente o papel de Editor
seu projeto. Se esse for o caso, você deve
conceder à conta de serviço
os seguintes papéis:
- Gravador do Artifact Registry (
roles/artifactregistry.writer
) - Gravador de registros (
roles/logging.logWriter
) - Leitor de objetos do Storage (
roles/storage.objectViewer
)
- Gravador do Artifact Registry (
É preciso conceder o papel Chamador do Cloud Run porque no Cloud Functions (2nd gen), as permissões de invocação ficam disponíveis gerenciando a serviço do Cloud Run.
Criar uma função do Cloud HTTP
Criar uma função HTTP acionada pelo Cloud Scheduler.
No console do Google Cloud, acesse Cloud Functions. página.
Clique em
. Criar função.Na seção Noções básicas, faça o seguinte:
- Na lista Ambiente, selecione 2a geração.
- Insira um nome para a função.
- Na lista Região, selecione uma região.
Na seção Gatilho, faça o seguinte:
- Na lista Tipo de acionador, selecione HTTPS.
Para autenticação, selecione Autenticação necessária.
Para mais informações, consulte Autenticar para invocação (2a geração).
Aceite os outros padrões e clique em Próxima.
Não modifique a linguagem de execução padrão e o exemplo de código. O código não usa nenhum serviço em nuvem e não precisa de permissões adicionais ativadas. Clique em Implantar.
Depois que a função for implantada, clique na guia Gatilho.
Copie o URL HTTP da função.
Criar um job do Cloud Scheduler
Criar 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ê copiado.
Na lista Cabeçalho de autenticação, selecione Adicionar token OIDC.
Na lista Conta de serviço, selecione a conta de serviço que você criados.
No campo Público-alvo, insira o URL HTTP da função que você copiado.
Clique em Criar.
Você criou um cron job que executa sua função do Cloud às 16h30 aos domingos.
execute o job do Cloud Scheduler
Agora você pode executar o job criado.
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, o primeiro job criado em um projeto pode levar uma alguns minutos para configurar e executar.
Após a execução do job, o Status da última execução deve indicar
Success
Verifique os resultados no Cloud Functions
É possível verificar se a função do Cloud foi acionada e executadas pelo cron job.
No Console do Google Cloud, acesse a página Cloud Functions.
Clique no nome da função.
A página Detalhes da função é aberta e o gráfico Invocações/segundo mostra a primeira invocação da função.
Clique na guia Registros.
Você vai encontrar uma entrada de registro semelhante a
POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/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
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
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 exclusão.No Console do Google Cloud, acesse a página Cloud Functions.
Marque a caixa de seleção ao lado da função.
Clique em
Excluir e confirme 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 que você criou.
Clique em
Excluir e confirme exclusão.