Activadores de Pub/Sub (1.ª gen.)
En las funciones de Cloud Run, un activador de Pub/Sub permite que se llame a una función en respuesta a mensajes de Pub/Sub. Cuando especifica un activador de Pub/Sub para una función, también especifica un tema de Pub/Sub. Se llamará a tu función cada vez que se publique un mensaje en el tema especificado.
Para que una función use un activador de Pub/Sub, debe implementarse como una función basada en eventos:
Si usas una función de CloudEvent, los datos de eventos de Pub/Sub se transfieren a tu función en el formato CloudEvents y la carga útil de datos de CloudEvent es de tipo
MessagePublishedData
.Si usas una función en segundo plano, la carga útil de los datos de eventos de Pub/Sub se transfiere directamente a tu función en formato
PubsubMessage
.
El repositorio Eventos de Google contiene recursos adicionales para trabajar con datos de eventos.
Implementación
Puede especificar un activador de Pub/Sub al desplegar una función. Consulta Desplegar una función de Cloud Run para obtener instrucciones generales sobre cómo desplegar una función y esta sección para obtener información adicional específica sobre la configuración de activadores de Pub/Sub durante el despliegue.
gcloud
Si despliega con la CLI de gcloud, las marcas que se muestran aquí se usan para configurar los activadores de Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
- La marca
--trigger-topic
especifica el tema de Pub/Sub que monitorizará el activador. Los mensajes publicados en este tema activan llamadas a tu función. - La marca
--retry
controla si se vuelve a intentar automáticamente las llamadas de función fallidas. Para obtener más información, consulta Reintentar funciones basadas en eventos.
Eventos de Pub/Sub antiguos
Las funciones antiguas de Cloud Run Functions (1.ª gen.) usan un tipo de evento diferente para los activadores de 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 se admite en las funciones antiguas que ya consumen estos eventos. Sin embargo, le recomendamos que utilice la marca --trigger-topic
, ya que el tipo de evento antiguo podría retirarse en el futuro.
Consola
Si despliegas mediante la Google Cloud consola, puedes configurar un activador de Pub/Sub en la sección Activador:
- En el campo Tipo de activador, selecciona Cloud Pub/Sub.
- En el campo Selecciona un tema de Cloud Pub/Sub, elige un tema para que el activador lo monitorice o selecciona Crear un tema para abrir una ventana en la que puedas crear un tema. Cuando se publica un mensaje en el tema de tu función, se activa una llamada a tu función.
- Marca o desmarca la casilla Reintentar si falla para controlar si se vuelven a intentar automáticamente las llamadas de función fallidas. Para obtener más información, consulta Volver a intentar funciones basadas en eventos.
Pasos siguientes
- Consulta cómo escribir funciones basadas en eventos.
- Consulta cómo desplegar una función de Cloud Run.
- Consulta el tutorial de Pub/Sub para ver un ejemplo de cómo escribir, desplegar y llamar a una función con un activador de Pub/Sub.