Neste tutorial, mostramos como acionar uma função HTTP do Cloud usando o Cloud Scheduler e segmentando um endpoint HTTP. Use uma função HTTP quando precisar que ela tenha um endpoint de URL e responda a solicitações HTTP, como para webhooks.
Também é possível programar uma função orientada a eventos quando sua função precisar ser acionada diretamente em resposta a eventos no projeto do Google Cloud, como mensagens em um tópico do Pub/Sub ou alterações em um bucket do Cloud Storage. Para mais informações, consulte Tipos de funções do Cloud.
Programar a execução de uma função do Cloud é um caso de uso comum 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;
- Verificar 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 a conta de serviço padrão do Compute Engine criada automaticamente para a conta de serviço do ambiente de execução. Use essa conta de serviço para testar
este tutorial. No entanto, dependendo da configuração da política da organização, talvez a conta de serviço padrão não receba automaticamente o papel de Editor no projeto. Se esse for o caso, será necessário
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 (
Observe que você precisa conceder o papel Chamador do Cloud Run porque, no Cloud Functions (2a geração), 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 HTTP
Criar uma função HTTP acionada pelo Cloud Scheduler.
No console do Google Cloud, acesse a página Cloud Functions.
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 serviços em nuvem e não precisa de outras permissões ativadas. Selecione 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ê copiou anteriormente.
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ê criou anteriormente.
No campo Público-alvo, insira o URL HTTP da função que você copiou anteriormente.
Clique em Criar.
Você criou um cron job que executa a função do Cloud às 16h30 de domingo.
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 ele é invocado inicialmente, o primeiro job criado em um projeto pode levar alguns minutos para ser configurado e executado.
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 executada com sucesso 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ê verá 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 a 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 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 que você criou.
Clique em
Excluir e confirme a exclusão.