Neste tutorial, mostramos como acionar uma função do Cloud usando o Cloud Scheduler e o Pub/Sub. A capacidade de programar a execução de uma função do Cloud é um caso de uso comum para o Cloud Scheduler. Você realizará as seguintes ações:
- criar uma função de nuvem simples que assine um tópico Pub/Sub;
- Criar um job do Cloud Scheduler que publique uma mensagem no tópico do Pub/Sub.
- executar o job do Cloud Scheduler;
- Verifique se a função do Cloud foi acionada pelo job do Cloud Scheduler.
Antes de começar
Para seguir este tutorial, você precisa ter 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. Você ativa 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 aparecer uma mensagem solicitando a ativação de APIs, clique em Ativar.
Na seção Noções básicas, selecione o ambiente de 2a geração, insira um nome para sua função e selecione uma região.
Na seção Acionador, em Tipo de acionador, selecione Cloud Pub/Sub e clique em Mais opções. O painel de 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, escolha um tópico atual ou clique em Criar um tópico. Sua função assina esse 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 necessários para invocar a função.
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 Configurações de ambiente de execução, build, conexões e segurança e selecione a guia Ambiente de execução.
Em Conta de serviço do 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ê pode fechar esta guia.
Retorne ao 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 preciso ativar as APIs necessárias, clique em Ativar.
Não modifique o idioma 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. 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.
Insira um nome para o job, selecione uma região em que ele será executado e, se quiser, adicione uma descrição.
Especifique a frequência do job usando o formato unix-cron.
30 16 * * 7
Consulte Configurar cron job jobs 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 seu tópico do Pub/Sub.
Adicione uma string curta de Message a ser enviada ao seu destino.
Clique em Criar.
Agora você tem um cron job que envia uma mensagem para seu tópico do Pub/Sub às 16h30 aos domingos. Sua função do Cloud Functions está inscrita nesse tópico.
Executar o job
Agora é possível executar o job criado.
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 deve mostrar "Sucesso".
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/Second mostra a primeira invocação da função. Para 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 seu tópico.
Clique em
Excluir e confirme a exclusão.
Excluir a Função do Cloud
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
Se você ativou alguma API ao seguir este tutorial, como as APIs Eventarc, Cloud Functions ou Pub/Sub, desative-as. Desativar APIs afeta o acesso à API no projeto. Portanto, não as desative 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.
Exclua o projeto
Se você criou um projeto apenas para este tutorial, ele pode ser excluído.
- 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.