En este tutorial se muestra cómo programar una función HTTP de Cloud Run dirigiéndose a un endpoint HTTP en Cloud Scheduler. 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.
Si has creado una función de CloudEvents, puedes usar activadores de eventos de Eventarc para programar tu función de forma que responda a eventos de tu proyecto. Eventarc puede activar mensajes en un tema de Pub/Sub, cambios en un segmento de Cloud Storage y más. 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:
Crear una función HTTP de Cloud Run
Crea una función HTTP que se active mediante Cloud Scheduler.
En la Google Cloud consola, ve a la página Cloud Run.
Haz clic en Escribir una función.
En la sección Configurar, haga lo siguiente:
- En el campo Nombre del servicio, escribe el nombre de la función.
- En la lista Región, selecciona una región.
- No modifiques el idioma predeterminado del tiempo de ejecución.
En Autenticación, selecciona Pedir autenticación.
Si tu proyecto está sujeto a una política de organización de restricción de dominio que restringe las invocaciones no autenticadas, tendrás que acceder al servicio desplegado tal como se describe en la sección Probar servicios privados.
Para obtener más información, consulta Autenticación para la invocación.
Acepta los demás valores predeterminados y haz clic en Crear.
Copia la URL HTTP de la función.
Para obtener más información, incluido cómo desplegar una función de Cloud Run con Terraform, consulta Desplegar una función de Cloud Run.
Crear una tarea de Cloud Scheduler
Crea una tarea de Cloud Scheduler que active una acción mediante HTTP.
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 HTTP.
En el campo URL, introduce la URL HTTP de la función que has copiado anteriormente.
En la lista Encabezado de autorización, selecciona Añadir token de OIDC.
En la lista Cuenta de servicio, selecciona la cuenta de servicio que has creado anteriormente.
En el campo Audiencia, introduce la URL HTTP de la función que has copiado anteriormente.
Haz clic en Crear.
Has creado un trabajo cron que ejecuta tu función de Cloud Run a las 16:30 los domingos.
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 activa y se ejecuta correctamente mediante tu trabajo cron.
En la Google Cloud consola, ve a la página Cloud Run.
Selecciona Filtrar servicios > Tipo de implementación > Función. De esta forma, la lista de servicios se filtra para mostrar únicamente las funciones.
Haz clic en el nombre de la función.
Se abrirá la página Detalles del servicio, donde se muestran las métricas del servicio.
Haz clic en la pestaña Registros.
Debería ver una entrada de registro similar a la siguiente:
POST 200 146 B 5 ms Google-Cloud-Scheduler https://FUNCTION_NAME