Activadores de Pub/Sub
En Cloud Functions, un activador de Pub/Sub permite que se llame a una función en respuesta a los mensajes de Pub/Sub. Cuando especificas un activador de Pub/Sub para una función, también especificas 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 controlada por eventos:
Si usas una función de CloudEvent, los datos de eventos de Pub/Sub se pasan a tu función en el formato de CloudEvents y la carga útil de datos de CloudEvent es del tipo
MessagePublishedData
.Si usas una función en segundo plano, la carga útil de datos de eventos de Pub/Sub se pasa directamente a tu función en el formato
PubsubMessage
.
El repositorio de Eventos de Google contiene recursos adicionales para trabajar con datos de eventos.
Deployment
Puedes especificar un activador de Pub/Sub cuando implementes una función. Consulta Implementa una Cloud Function a fin de obtener instrucciones generales para implementar una función, y consulta la siguiente información adicional específica sobre la configuración de activadores de Pub/Sub durante la implementación.
gcloud
Si implementas mediante la CLI de gcloud, las marcas que se muestran a continuación se usan para configurar los activadores de Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
- La marca
--trigger-topic
especifica el tema de Pub/Sub que supervisará el activador. Los mensajes publicados en este tema activarán llamadas a tu función. - La marca
--retry
controla si se reintentan las llamadas a funciones con errores. Consulta Reintenta las funciones controladas por eventos para obtener más información.
Eventos heredados de Pub/Sub
Las funciones heredadas en Cloud Functions (1st gen) usan un tipo de evento diferente para los activadores de Pub/Sub:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \ --trigger-resource=YOUR_PUBSUB_TOPIC \ ...
Este tipo de evento es compatible con funciones heredadas que ya consumen estos eventos. Sin embargo, recomendamos usar la marca --trigger-topic
en su lugar, ya que los tipos de eventos heredados podrían quitarse en el futuro.
Console
Si implementas con la consola de Google Cloud, puedes configurar un activador de Pub/Sub en la sección Activador.
Para Cloud Functions (2nd gen):
- En el campo Tipo de activador, elige Cloud Pub/Sub.
- En el campo Tema de Cloud Pub/Sub, elige un tema para que el activador lo supervise. Los mensajes publicados en este tema activarán llamadas a tu función.
- Selecciona o desmarca la casilla de verificación Reintentar en caso de error para controlar si Cloud Functions reintenta de forma automática una invocación de función con errores. Consulta Reintenta las funciones controladas por eventos para obtener más información.
Haz clic en Más opciones para realizar una configuración adicional en tu activador:
En el campo Tipo de activador, especifica una de las Fuentes de Google, Personalizadas o De terceros:
Fuentes de Google te permite especificar activadores para Pub/Sub, Cloud Storage, Firestore y otros proveedores de eventos de Google. En el panel Activador de Eventarc, usa el campo Proveedor de eventos para seleccionar el producto que proporciona el tipo de evento que deseas que active la función. Luego, en el campo Evento, selecciona el evento que deseas usar como activador.
La opción Personalizado te permite producir y consumir eventos desde el código de la aplicación. Sigue las instrucciones del panel Activador de Eventarc para crear un canal. Un canal es un recurso que se usa como una canalización para entregar eventos personalizados de los productores a los consumidores. Los eventos personalizados se publican en un canal y un activador de Eventarc se suscribe a esos eventos.
La opción Terceros te permite integrarte a proveedores externos a Google que ofrecen una fuente de Eventarc. Consulta los eventos de terceros en Eventarc para obtener más detalles.
En el campo Evento, selecciona un evento activador. El valor predeterminado es
google.cloud.pubsub.topic.v1.messagePublished
.De manera opcional, en el campo Cuenta de servicio, selecciona una cuenta de servicio para usarla como identidad del activador de Eventarc. Consulta Identidad del activador para obtener más información.
Haz clic en Guardar activador.
Para Cloud Functions (1st gen):
- 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 supervise o selecciona Crear un tema a fin de abrir una ventana. crea un tema nuevo. Cuando se publica un mensaje en el tema de tu función, se activa una llamada a la función.
- Selecciona o desmarca la casilla de verificación Reintentar en caso de error para controlar si las llamadas a funciones con errores se reintentan automáticamente. Consulta Reintenta las funciones controladas por eventos para obtener más información.
Próximos pasos
- Obtén información sobre cómo escribir funciones controladas por eventos.
- Aprende a implementar una función de Cloud Functions.
- Consulta el instructivo de función de Pub/Sub para ver un ejemplo de escritura, implementación y llamada a una función con un activador de Pub/Sub.