Este tutorial mostra como usar o Cloud Scheduler e o Pub/Sub para acionar uma função de nuvem. Agendar a execução de uma função do Cloud Functions é um caso de uso comum para o Cloud Scheduler. Você vai:
- criar uma função de nuvem simples que assine um tópico Pub/Sub;
- criar um tópico Pub/Sub para acionar essa função;
- Criar um job do Cloud Scheduler que chame o acionador do Pub/Sub.
- executar o job do Cloud Scheduler;
- verificar se a operação foi bem-sucedida.
Antes de começar
Para este tutorial, supomos que você já tenha concluído o Guia de início rápido do Cloud Scheduler. Como resultado, você tem as seguintes ferramentas e recursos disponíveis:Ter um projeto do Google Cloud com o faturamento ativado.
A API do Cloud Scheduler e a API Pub/Sub ativadas no projeto. Ative a API Cloud Functions durante o tutorial.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- Cloud Functions
- Pub/Sub
- Cloud Scheduler
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Criar uma função do Cloud com um gatilho
No console do Google Cloud, acesse a página Cloud Functions.
Clique em Ativar API, se solicitado.
Clique em Criar função. Se for exibida uma mensagem solicitando a ativação das APIs, clique em Ativar.
Na seção Básico, selecione o ambiente de 2a geração, insira um nome para sua função e selecione uma região.
Na seção Acionador, selecione Exigir autenticação. Clique em Adicionar gatilho e selecione Gatilho do Pub/Sub. O painel Gatilho do Eventarc é aberto. Se a mensagem Ativar as APIs necessárias aparecer, clique em Ativar.
No painel Gatilho do Eventarc, verifique se os primeiros campos foram preenchidos da seguinte maneira ou, se necessário, preencha-os:
- Tipo de acionador:origens do Google
- Provedor de eventos: Cloud Pub/Sub
- Evento:
google.cloud.pubsub.topic.v1.messagePublished
No campo Selecionar um tópico do Cloud Pub/Sub, selecione um tópico atual ou clique em Criar novo tópico. Sua função se inscreve nesse tópico. Anote o nome do tópico, porque você precisará dele mais tarde.
- Clique em Conceder, se solicitado, para permitir que o serviço Pub/Sub crie os tokens de identidade que serão usados para acionar a função. Lembre-se de que você selecionou Exigir autenticação para a função. O Pub/Sub usa os tokens de identidade para fazer a autenticação necessária.
No campo Conta de serviço, clique em Criar nova conta de serviço.
Digite um nome para a conta de serviço e clique em Criar. O Eventarc usa essa conta de serviço para invocar a função com um token de identidade do serviço Pub/Sub.
Na seção Conceda a essa conta de serviço acesso ao projeto, selecione o papel Invocador do Cloud Run. Isso concede à conta de serviço a capacidade de invocar sua função de 2a geração.
Clique em Concluído.
Deixe a opção Tentar novamente em caso de falha desmarcada. Clique em Salvar acionador.
Expanda a seção Ambiente de execução, build, conexões e configurações de segurança e selecione a guia Ambiente de execução.
Em Conta de serviço de ambiente de execução, no campo Conta de serviço, clique em Criar. O fluxo de criação da conta de serviço é aberto em uma nova guia. Essa conta de serviço é a identidade que a função do Cloud tem quando é executada.
- Digite um nome para a conta de serviço.
- Clique em Criar e continuar.
- Clique em Concluído.
Você será redirecionado para a página Contas de serviço do console do Google Cloud. Você já pode fechar esta guia.
Volte para o campo Conta de serviço na página de criação da função, clique em Atualizar e selecione a conta de serviço que você acabou de criar.
Clique em Próxima. Se for solicitado que você ative as APIs necessárias, clique em Ativar.
Não modifique a linguagem padrão e o exemplo de código. O código não usa serviços em nuvem e não precisa de permissões adicionais ativadas. Clique em Implantar.
Criar um job do Cloud Scheduler
No console do Google Cloud, acesse a página do Cloud Scheduler.
Clique em Criar job.
Se necessário, selecione uma região para executar o job.
Dê um nome ao job e, se preferir, inclua uma descrição.
Especifique a frequência do job usando o formato unix-cron.
30 16 * * 7
Consulte Configurar programações de cron job para mais informações.
Selecione seu fuso horário.
Clique em Continuar.
Na seção Configurar a execução, selecione Pub/Sub como o tipo de destino.
Selecione o nome do seu Tema.
Adicione uma string Message curta para ser enviada ao destino.
Clique em Criar.
Agora você tem um cron job que envia uma mensagem para o tópico do Pub/Sub às 16h30 aos domingos. Sua função do Cloud Functions está inscrita nesse tópico.
Executar o job
Agora você pode executar o job que criou.
No console do Google Cloud, acesse a página do Cloud Scheduler.
Selecione o job que você criou.
Clique em Forçar execução.
A primeira execução do primeiro job criado em um projeto pode demorar alguns minutos devido à configuração necessária.
Observe a coluna Status da última execução. Após a execução do job, a coluna exibirá "Success".
Parabéns! Você acabou de usar o console para ver os resultados da execução de um cron job que envia uma mensagem para Pub/Sub. Em seguida, você aprenderá a verificar se a função do Cloud Functions foi realmente executada.
Verificar os resultados no Cloud Functions
Para verificar se a função do Cloud está sendo acionada 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. O gráfico Invocations/Seconds mostra sua primeira invocação da função. Para ver detalhes sobre a invocação, clique em Registros.
Parabéns! Sua função foi executada.
Limpar
Para evitar cobranças dos recursos usados neste tutorial na conta do Google Cloud, siga estas etapas:
Exclua o job do Cloud Scheduler
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.
Exclua o tópico Pub/Sub
No console do Google Cloud, acesse a página do Cloud Pub/Sub.
Marque a caixa de seleção ao lado do tópico.
Clique em
Excluir e confirme a exclusão.
Exclua a função do Cloud Functions
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.
Excluir as contas de serviço
No Console do Google Cloud, acesse a página Contas de serviço.
Marque a caixa de seleção ao lado das contas de serviço que você criou.
Clique em
Excluir e confirme a exclusão.
Desativar as APIs
Desative alguma API ao seguir este tutorial, como a API Eventarc, Cloud Functions ou Pub/Sub. Desativar APIs afeta o acesso à API do projeto. Portanto, não desative APIs se outros recursos no projeto as usarem.
No Console do Google Cloud, acesse a página APIs e serviços.
Clique na API que você pretende desativar. Será exibida uma página descrevendo a API.
Clique em
Desativar API.
Excluir o projeto
Se você criou um projeto apenas para este tutorial.
- 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.