Gatilhos do Pub/Sub
No Cloud Functions, um acionador Pub/Sub permite que uma função seja chamada em resposta a mensagens do Pub/Sub. Ao especificar um acionador do Pub/Sub para uma função, você também especifica um tópico do Pub/Sub. A função será chamada sempre que uma mensagem for publicada no tópico especificado.
Para que uma função use um acionador Pub/Sub, ela precisa ser implementada como uma função orientada a eventos:
Se você usar uma Função CloudEvent , os dados de evento do Pub/Sub são transmitidos para sua função no Formato do CloudEvents e o payload de dados do CloudEvent é do tipo
MessagePublishedData
.Se você usar uma função em segundo plano, o payload de dados de eventos do Pub/Sub será transmitido diretamente para sua função no formato
PubsubMessage
.
O repositório Eventos do Google contém outros recursos para trabalhar com dados de eventos.
Implantação
É possível especificar um acionador Pub/Sub ao implantar uma função. Consulte Implantar uma função do Cloud para instruções gerais sobre como implantar uma função. Veja abaixo mais informações específicas para configurar acionadores do Pub/Sub durante a implantação.
gcloud
Se você estiver implantando usando a CLI gcloud, as sinalizações mostradas abaixo serão usadas para configurar acionadores do Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
- A sinalização
--trigger-topic
especifica o tópico do Pub/Sub que o gatilho vai monitorar. As mensagens publicadas neste tópico acionarão chamadas para sua função. - A sinalização
--retry
controla se as chamadas de função com falha são repetidas automaticamente. Consulte Como repetir funções orientadas a eventos para mais informações.
Eventos legados do Pub/Sub
As funções legadas no Cloud Functions (1a geração) usam um tipo de evento diferente para acionadores do Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \ --trigger-resource=YOUR_PUBSUB_TOPIC \ ...
Esse tipo de evento é compatível com funções legadas que já consomem
esses eventos. No entanto, recomendamos o uso da sinalização --trigger-topic
, porque
o tipo de evento legado pode ser removido em uma data futura.
Console
Para implantar usando o Console do Google Cloud, configure um gatilho do Pub/Sub na seção Acionador.
Para o Cloud Functions (2ª geração):
- No campo Tipo de gatilho, selecione Cloud Pub/Sub.
- No campo Tópico do Cloud Pub/Sub, selecione um tópico para o gatilho monitorar. As mensagens publicadas neste tópico acionarão chamadas para sua função.
- Marque ou desmarque a caixa de seleção Tentar novamente em caso de falha para controlar se o Cloud Functions repetirá automaticamente uma invocação de função que falhou. Consulte Como repetir funções orientadas a eventos para mais informações.
Clique em Mais opções para fazer outras configurações no gatilho:
No campo Tipo de gatilho, especifique uma das Fontes do Google, Personalizado ou Terceiros:
As Fontes do Google permitem especificar gatilhos para o Pub/Sub, Cloud Storage, Firestore e outros provedores de eventos do Google. No painel Gatilho do Eventarc, use o campo Provedor de eventos para selecionar o produto que fornece o tipo de evento que você quer que acione sua função. Em seguida, no campo Evento, selecione o evento que você quer usar como gatilho.
A opção Personalizada permite produzir e consumir eventos do código do aplicativo. Siga as instruções no painel Gatilho do Eventarc para criar um canal. Um canal é um recurso usado como pipeline para entregar eventos personalizados de produtores a consumidores. Eventos personalizados são publicados em um canal, e um gatilho do Eventarc é inscrito nesses eventos.
A opção Terceiros permite a integração com provedores que não são do Google que oferecem uma fonte do Eventarc. Consulte Eventos de terceiros no Eventarc para mais detalhes.
No campo Evento, selecione um evento de gatilho. O padrão é
google.cloud.pubsub.topic.v1.messagePublished
.Opcionalmente, no campo Conta de serviço, selecione uma conta de serviço a ser usada como a identidade do acionador do Eventarc. Consulte Identidade do gatilho para mais informações.
Clique em Salvar acionador.
Para o Cloud Functions (1ª geração):
- No campo Acionador, selecione Cloud Pub/Sub.
- No campo Selecione um tópico do Cloud Pub/Sub, escolha um tópico para o acionador monitorar ou selecione Criar um tópico para abrir uma janela para crie um novo tópico. Quando uma mensagem é publicada no tópico da sua função, isso aciona uma chamada para a função.
- Marque ou limpe a caixa de seleção Tentar novamente em caso de falha para controlar se as chamadas de função com falha são repetidas automaticamente. Consulte Como repetir funções orientadas a eventos para mais informações.
Próximas etapas
- Saiba como escrever funções baseadas em eventos.
- Saiba como implantar uma função do Cloud.
- Consulte o tutorial de função do Pub/Sub para ver um exemplo de gravação, implantação e chamada de uma função com um acionador do Pub/Sub.