Programar uma função do Cloud

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. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Criar uma função do Cloud com um gatilho

  1. No console do Google Cloud, acesse a página Cloud Functions.

    Acesse o Cloud Functions

  2. Clique em Ativar API, se solicitado.

  3. Clique em Criar função. Se aparecer uma mensagem solicitando a ativação de APIs, clique em Ativar.

  4. 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.

  5. 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.

  6. 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
  7. 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.
  8. No campo Conta de serviço, clique em Criar nova conta de serviço.

    1. 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.

    2. 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.

    3. Clique em Concluído.

  9. Deixe a opção Tentar novamente em caso de falha desmarcada. Clique em Salvar acionador.

  10. 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.

  11. 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.

    1. Digite um nome para a conta de serviço.
    2. Clique em Criar e continuar.
    3. 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.

  12. 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.

  13. Clique em Próxima. Se for preciso ativar as APIs necessárias, clique em Ativar.

  14. 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

  1. No console do Google Cloud, acesse a página do Cloud Scheduler.

    Acessar o Cloud Scheduler

  2. Clique em Criar job.

  3. Insira um nome para o job, selecione uma região em que ele será executado e, se quiser, adicione uma descrição.

  4. Especifique a frequência do job usando o formato unix-cron.

    30 16 * * 7
    

    Consulte Configurar cron job jobs para mais informações.

  5. Selecione seu fuso horário.

  6. Clique em Continuar.

  7. Na seção Configurar a execução, selecione Pub/Sub como o tipo de destino.

  8. Selecione seu tópico do Pub/Sub.

  9. Adicione uma string curta de Message a ser enviada ao seu destino.

  10. 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.

  1. No console do Google Cloud, acesse a página do Cloud Scheduler.

    Acessar o Cloud Scheduler

  2. Selecione o job que você criou.

  3. 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.

  4. 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:

  1. No console do Google Cloud, acesse a página Cloud Functions.

    Acesse o Cloud Functions

  2. Clique no nome da função.

  3. 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

  1. No console do Google Cloud, acesse a página do Cloud Scheduler.

    Acessar o Programador

  2. Clique na caixa de seleção que está próxima ao job.

  3. Clique em Excluir e confirme a exclusão.

Exclua o tópico Pub/Sub

  1. No console do Google Cloud, acesse a página do Cloud Pub/Sub.

    Ir para o Pub/Sub

  2. Marque a caixa de seleção ao lado do seu tópico.

  3. Clique em Excluir e confirme a exclusão.

Excluir a Função do Cloud

  1. No console do Google Cloud, acesse a página Cloud Functions.

    Acesse o Cloud Functions

  2. Marque a caixa de seleção ao lado da função.

  3. Clique em Excluir e confirme a exclusão.

Excluir as contas de serviço

  1. No Console do Google Cloud, acesse a página Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Marque a caixa de seleção ao lado das contas de serviço que você criou.

  3. 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.

  1. No Console do Google Cloud, acesse a página APIs e serviços.

    Acessar APIs e serviços

  2. Clique na API que você pretende desativar. Será exibida uma página descrevendo a API.

  3. Clique em Desativar API.

Exclua o projeto

Se você criou um projeto apenas para este tutorial, ele pode ser excluído.

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.