Agende uma função do Cloud Run acionada por eventos

Este tutorial mostra como acionar uma função do Cloud Run baseada em eventos usando o Cloud Scheduler e segmentando um tópico do Pub/Sub. Use uma função acionada por eventos quando a função deve ser acionada diretamente em resposta a eventos no seu Google Cloud projeto, como mensagens num tópico do Pub/Sub ou alterações num contentor do Cloud Storage.

Tenha em atenção que também pode agendar uma função HTTP segmentando o ponto final HTTP da sua função. Use uma função HTTP quando precisar que a sua função tenha um ponto final de URL e responda a pedidos HTTP, como para webhooks. Para mais informações, consulte o artigo Tipos de funções do Cloud Run.

O agendamento da execução de uma função do Cloud Run é um exemplo de utilização comum do Cloud Scheduler. Neste tutorial, vai:

  1. Crie uma função simples do Cloud Run que subscreva um tópico do Pub/Sub.
  2. Crie uma tarefa do Cloud Scheduler que publique uma mensagem no tópico do Pub/Sub.
  3. Execute a tarefa do Cloud Scheduler.
  4. Verifique se a função do Cloud Run foi acionada pela tarefa do Cloud Scheduler.

Crie uma função do Cloud Run orientada por eventos

Criar uma função orientada por eventos que é acionada diretamente em resposta a eventos no seu Google Cloud projeto; neste caso, uma mensagem publicada num tópico do Pub/Sub.

  1. Na Google Cloud consola, aceda à página Funções do Cloud Run.

    Aceder às funções do Cloud Run

  2. Clique em Criar função.

  3. Na secção Básico, faça o seguinte:

    1. Na lista Ambiente, selecione 2.ª geração.
    2. Introduza um nome para a função.
    3. Na lista Região, selecione uma região.
  4. Na secção Acionador, faça o seguinte:

    1. Na lista Tipo de acionador, selecione Cloud Pub/Sub.
    2. Na lista Tópico do Cloud Pub/Sub, selecione um tópico existente ou, para criar um novo tópico, clique em Criar um tópico. Tome nota do nome do tópico, pois vai precisar dele num passo posterior.
    3. Clique em Mais opções.

      É aberto o painel Acionador do Eventarc.

  5. No painel Acionador do Eventarc, faça o seguinte:

    1. Se lhe for pedido que permita que o serviço Pub/Sub crie os tokens de identidade de que precisa para invocar a função, clique em Conceder.
    2. Na lista Conta de serviço, selecione a conta de serviço que criou anteriormente.
    3. Aceite as outras predefinições.
    4. Clique em Guardar acionador.

      O painel Acionador do Eventarc é fechado.

  6. Aceite as outras predefinições e clique em Seguinte.

  7. Não modifique o idioma de tempo de execução predefinido nem o código de exemplo. O código não usa serviços na nuvem e não precisa de autorizações adicionais ativadas. Clique em Implementar.

Crie uma tarefa do Cloud Scheduler

Crie uma tarefa do Cloud Scheduler com um destino do Pub/Sub.

  1. Na Google Cloud consola, aceda à página Cloud Scheduler.

    Aceda ao Cloud Scheduler

  2. Clique em Criar tarefa.

  3. Introduza um nome para a tarefa.

  4. Na lista Região, selecione uma região.

  5. Especifique a frequência da tarefa, usando um formato unix-cron:

    30 16 * * 7
    

    Para mais informações, consulte o artigo Formato de tarefa cron e fuso horário.

  6. Na lista Fuso horário, selecione um fuso horário.

  7. Clique em Continuar.

  8. Na lista Tipo de destino, selecione Pub/Sub.

  9. Selecione o tópico do Pub/Sub que criou anteriormente.

  10. No campo Corpo da mensagem, introduza uma string a ser enviada para o tópico de destino do Pub/Sub. Por exemplo: "Olá mundo!"

  11. Clique em Criar.

Criou uma tarefa cron que envia uma mensagem para o seu tópico do Pub/Sub às 16:30 aos domingos. A sua função do Cloud Run está subscrita nesse tópico.

Execute a sua tarefa do Cloud Scheduler

Agora, pode executar a tarefa que criou.

  1. Na Google Cloud consola, aceda à página Cloud Scheduler.

    Aceda ao Cloud Scheduler

  2. Selecione a caixa de verificação da tarefa que criou e clique em Forçar execução.

    Quando é invocado inicialmente, o primeiro trabalho criado num projeto pode demorar alguns minutos a configurar e executar.

  3. Após a execução da tarefa, o Estado da última execução deve indicar Success.

Valide os resultados nas funções do Cloud Run

Pode verificar se a função do Cloud Run é acionada e executada com êxito pela tarefa cron.

  1. Na Google Cloud consola, aceda à página Funções do Cloud Run.

    Aceder às funções do Cloud Run

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

  3. Clique no separador Registos.

    Deve ver uma entrada de registo semelhante a Hello, YOUR_STRING!