Depois de criar e implementar a sua função do Cloud Run, pode definir a função para ser executada em resposta a vários cenários especificando um acionador. Esta página oferece uma vista geral dos acionadores suportados pelas funções do Cloud Run.
Tipos de acionadores
Por predefinição, todas as funções implementadas no Cloud Run são
serviços implementados a partir da origem do Cloud Run
que têm um ponto final HTTP (URL run.app
). Se criou anteriormente uma função com o comando gcloud functions
ou a API Cloud Functions v2, por predefinição, a função tem um cloudfunctions.net
ponto final HTTP.
A forma como a sua função é invocada ou acionada depende do tipo de função que especifica quando escreve o código.
- Acionadores orientados por eventos: reagem a eventos no seu Google Cloud projeto e correspondem a funções orientadas por eventos (também denominadas funções CloudEvent). Tem de usar o Eventarc, a implementação da Google da especificação CloudEvents que suporta a criação de arquiteturas orientadas por eventos, para acionar funções em resposta a eventos especificados.
- Acionadores HTTP: reagem a pedidos HTTP(S) e correspondem a funções HTTP. Pode usar outros Google Cloud serviços (não Eventarc) como fornecedor de eventos para invocar a função através de pedidos HTTP(S).
Para acionar uma função para reagir a eventos no seu Google Cloud projeto, especifica acionadores como parte da implementação da função na Google Cloud consola ou após a implementação da função quando usa a CLI gcloud.
Não pode associar a mesma função a mais do que um acionador de cada vez, mas pode fazer com que o mesmo evento execute várias funções implementando várias funções com as mesmas definições de acionador.
Exemplos de acionadores
Seguem-se exemplos de acionadores suportados pelas funções do Cloud Run:
Acionadores orientados por eventos:
- Eventos Pub/Sub acionados pelo Eventarc
- Eventos do Cloud Storage acionados pelo Eventarc
- Eventos do Firestore acionados pelo Eventarc
- Outros acionadores de eventos
- Suporta qualquer tipo de evento suportado pelo Eventarc, incluindo mais de 90 origens de eventos que usam os registos de auditoria do Cloud
Acionadores HTTP:
- Invocar com um pedido HTTP
- Invocar serviços como parte de um fluxo de trabalho com os Workflows
- Invocar serviços com base numa programação com o Cloud Scheduler
- Use o Cloud Tasks para executar tarefas assíncronas
- Acione serviços a partir de uma subscrição push do Pub/Sub
- As mensagens do Pub/Sub podem ser encaminhadas diretamente para uma função através de pedidos HTTP ou incluídas no Eventarc como um acionador orientado por eventos.
Todas as funções acionadas por eventos usam o Eventarc para a entrega de eventos. Os acionadores do Pub/Sub e os acionadores do Cloud Storage são implementados como tipos específicos de acionadores do Eventarc.
Acionadores adicionais através do Pub/Sub e webhooks
Uma vez que as funções do Cloud Run podem ser acionadas por mensagens num tópico do Pub/Sub, pode integrar as funções do Cloud Run com qualquer outro serviço Google que suporte o Pub/Sub como um barramento de eventos. Além disso, ao usar acionadores HTTP, também pode fazer a integração com qualquer serviço que forneça callbacks HTTP (webhooks). As secções seguintes descrevem algumas integrações de exemplo.
Cloud Logging
O Cloud Logging pode encaminhar registos para um tópico do Pub/Sub, onde podem ser consumidos por funções do Cloud Run. Consulte o artigo Configurar e gerir destinos na documentação do Cloud Logging para mais informações.
Cloud Scheduler
Pode agendar uma função HTTP criando uma tarefa do Cloud Scheduler que aciona uma ação através de HTTP.
Também pode agendar uma função acionada por eventos para quando a função deve ser acionada diretamente em resposta a eventos no seu Google Cloud projeto; por exemplo, quando uma mensagem é publicada num tópico do Pub/Sub.
Cloud Tasks
As tarefas de destino HTTP do Cloud Tasks permitem-lhe executar controladores de tarefas em qualquer ponto final HTTP, pelo que uma função HTTP com um acionador HTTP pode ser usada como um controlador de tarefas. Também pode usar tarefas para limitar as invocações de funções. Consulte o artigo Crie tarefas de destino HTTP na documentação do Cloud Tasks para mais informações.
Gmail
Através da API de notificações push do Gmail, pode enviar eventos do Gmail para um tópico do Pub/Sub e consumi-los com o Cloud Run.