En este tutorial se muestra cómo activar una función de Cloud Run basada en eventos mediante Cloud Scheduler y dirigiéndola a un tema de Pub/Sub. Usa una función basada en eventos cuando quieras que se active directamente en respuesta a eventos de tu Google Cloud proyecto, como mensajes de un tema de Pub/Sub o cambios en un segmento de Cloud Storage.
Ten en cuenta que también puedes programar una función HTTP dirigiéndote al endpoint HTTP de la función. Usa una función HTTP cuando necesites que tu función tenga un endpoint de URL y responda a solicitudes HTTP, como en el caso de los webhooks. Para obtener más información, consulta Tipos de funciones de Cloud Run.
Programar la ejecución de una función de Cloud Run es un caso de uso habitual de Cloud Scheduler. En este tutorial, aprenderás a hacer lo siguiente:
- Crea una función de Cloud Run sencilla que se suscriba a un tema de Pub/Sub.
- Crea una tarea de Cloud Scheduler que publique un mensaje en el tema de Pub/Sub.
- Ejecuta la tarea de Cloud Scheduler.
- Verifica que la tarea de Cloud Scheduler haya activado la función de Cloud Run.
Crear una función de Cloud Run basada en eventos
Crea una función basada en eventos que se active directamente en respuesta a eventos de tu proyecto. En este caso, se trata de un mensaje publicado en un tema de Pub/Sub. Google Cloud
En la Google Cloud consola, ve a la página Funciones de Cloud Run.
Haz clic en
Crear función.En la sección Información básica, haga lo siguiente:
- En la lista Entorno, selecciona 2.ª gen..
- Escribe el nombre de la función.
- En la lista Región, selecciona una región.
En la sección Activador, haga lo siguiente:
- En la lista Tipo de activador, selecciona Cloud Pub/Sub.
- En la lista Tema de Cloud Pub/Sub, selecciona un tema o haz clic en Crear un tema para crear uno. Anota el nombre del tema, ya que lo necesitarás en un paso posterior.
Haz clic en Más opciones.
Se abrirá el panel Activador de Eventarc.
En el panel Desencadenador de Eventarc, haz lo siguiente:
- Si se te pide que permitas que el servicio Pub/Sub cree los tokens de identidad que necesita para invocar la función, haz clic en Conceder.
- En la lista Cuenta de servicio, selecciona la cuenta de servicio que hayas creado anteriormente.
- Acepta los demás valores predeterminados.
Haz clic en Guardar activador.
Se cierra el panel Desencadenador de Eventarc.
Acepta los demás valores predeterminados y haz clic en Siguiente.
No modifiques el lenguaje de tiempo de ejecución predeterminado ni el código de ejemplo. El código no usa ningún servicio en la nube y no necesita que se habiliten permisos adicionales. Haz clic en Desplegar.
Crear una tarea de Cloud Scheduler
Crea una tarea de Cloud Scheduler con un destino de Pub/Sub.
En la Google Cloud consola, ve a la página Cloud Scheduler.
Haz clic en
Crear trabajo.Escribe el nombre del trabajo.
En la lista Región, selecciona una región.
Especifica la frecuencia de la tarea con el formato cron de UNIX:
30 16 * * 7
Para obtener más información, consulta Formato de las tareas cron y zona horaria.
En la lista Zona horaria, selecciona una zona horaria.
Haz clic en Continuar.
En la lista Tipo de destino, selecciona Pub/Sub.
Selecciona el tema de Pub/Sub que has creado anteriormente.
En el campo Cuerpo del mensaje, introduce una cadena que se enviará al tema de destino de Pub/Sub. Por ejemplo: "Hello world!"
Haz clic en Crear.
Has creado un trabajo cron que envía un mensaje a tu tema de Pub/Sub a las 16:30 los domingos. Tu función de Cloud Run está suscrita a ese tema.
Ejecutar la tarea de Cloud Scheduler
Ahora puedes ejecutar el trabajo que has creado.
En la Google Cloud consola, ve a la página Cloud Scheduler.
Seleccione la casilla del trabajo que ha creado y haga clic en Forzar ejecución.
Cuando se invoca por primera vez, el primer trabajo creado en un proyecto puede tardar unos minutos en configurarse y ejecutarse.
Una vez que se haya ejecutado el trabajo, el Estado de la última ejecución debe indicar
Success
.
Verificar los resultados en Cloud Run Functions
Puedes verificar que tu función de Cloud Run se ha activado y ejecutado correctamente mediante tu tarea cron.
En la Google Cloud consola, ve a la página Funciones de Cloud Run.
Haz clic en el nombre de la función.
Se abre la página Detalles de la función y el gráfico Invocaciones/segundo muestra la primera invocación de la función.
Haz clic en la pestaña Registros.
Debería ver una entrada de registro similar a
Hello, YOUR_STRING!