Acionadores do Pub/Sub (1.ª geração)
Nas funções do Cloud Run, um acionador do Pub/Sub permite que uma função seja chamada em resposta a mensagens do Pub/Sub. Quando especifica um acionador do Pub/Sub para uma função, também especifica um tópico do Pub/Sub. A sua função é chamada sempre que uma mensagem é publicada no tópico especificado.
Para que uma função use um acionador do Pub/Sub, tem de ser implementada como uma função orientada por eventos:
Se usar uma função CloudEvent, os dados do evento Pub/Sub são transmitidos à sua função no formato CloudEvents e a carga útil dos dados CloudEvent é do tipo
MessagePublishedData
.Se usar uma função em segundo plano, a carga útil dos dados de eventos do Pub/Sub é transmitida diretamente à sua função no formato
PubsubMessage
.
O repositório de eventos Google contém recursos adicionais para trabalhar com dados de eventos.
Implementação
Pode especificar um acionador do Pub/Sub quando implementa uma função. Consulte o artigo Implemente uma função do Cloud Run para ver instruções gerais sobre como implementar uma função e consulte esta secção para ver informações adicionais específicas sobre a configuração de acionadores do Pub/Sub durante a implementação.
gcloud
Se estiver a fazer a implementação através da CLI gcloud, as flags apresentadas aqui são usadas para configurar acionadores do Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
- A flag
--trigger-topic
especifica o tópico Pub/Sub que o acionador vai monitorizar. As mensagens publicadas neste tópico acionam chamadas para a sua função. - A flag
--retry
controla se as chamadas de funções com falhas são repetidas automaticamente. Consulte o artigo Voltar a tentar funções acionadas por eventos para mais informações.
Eventos Pub/Sub antigos
As funções antigas nas funções do Cloud Run (1.ª geração) usam um tipo de evento diferente para acionadores do Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \ --trigger-resource=YOUR_PUBSUB_TOPIC \ ...
Este tipo de evento é suportado para funções antigas que já consomem estes eventos. No entanto, recomendamos que use a flag --trigger-topic
. O tipo de evento antigo pode ser removido numa data futura.
Consola
Se estiver a implementar através da Google Cloud consola, pode configurar um acionador do Pub/Sub na secção Acionador:
- No campo Tipo de acionador, selecione Cloud Pub/Sub.
- No campo Selecionar um tópico do Cloud Pub/Sub, selecione um tópico para o acionador monitorizar ou selecione Criar um tópico para abrir uma janela para criar um novo tópico. Quando uma mensagem é publicada no tópico da sua função, isso aciona uma chamada à sua função.
- Selecione ou desmarque a caixa de verificação Repetir em caso de falha para controlar se as chamadas de funções falhadas são repetidas automaticamente. Consulte o artigo Voltar a tentar funções acionadas por eventos para mais informações.
Passos seguintes
- Saiba como escrever funções orientadas por eventos.
- Saiba como implementar uma função do Cloud Run.
- Consulte o tutorial do Pub/Sub para ver um exemplo de escrita, implementação e chamada de uma função com um acionador do Pub/Sub.