Verificando autenticación…

Saltar al contenido principal

Cloud Scheduler

Cloud Scheduler es un servicio completamente administrado de trabajos cron (cron jobs) en GCP.

Características técnicas

  • Basado en reglas cron estándar (* * * * *)
  • Ejecuta trabajos en intervalos regulares o específicos (por ejemplo, cada hora, diario, los lunes, etc.)
  • Puede activar distintos tipos de destinos (targets):
    • HTTP/HTTPS (API REST)
    • Pub/Sub (event-driven)

Relación entre Cloud Scheduler, HTTP y Pub/Sub

Cloud Scheduler puede integrarse con ambos:

MétodoQué haceEjemplo
HTTPLlama un endpoint directamente vía HTTPEnviar un POST a una API que apaga instancias
Pub/SubPublica un mensaje en un tópicoDisparar una función que escucha un tópico y ejecuta lógica

⚙️ Funcionalidades Principales

1. Creación de Schedulers

Scheduler de Tipo Pub/Sub

Permite programar mensajes en un tópico de Pub/Sub.

Inputs del formulario:
  • GCP Project (Obligatorio): Proyecto en Google Cloud (Ejemplo: trmdomain-prod)
  • Job Name (Obligatorio): Nombre único del job (Ejemplo: andes-load-cost)
  • Payload Message: Mensaje en formato JSON a enviar (Ejemplo: { "key": "value" })
  • Description: Breve descripción (Ejemplo: Carga automática de costos)
  • Schedule (Obligatorio): Expresión cron para la frecuencia de ejecución (Ejemplo: 0 */1 * * *)
  • Topic (Obligatorio): Tópico Pub/Sub (Ejemplo: projects/trmdomain-prod/topics/latam-cost)
  • Time Zone: Zona horaria del cron (Ejemplo: Etc/UTC)
  • Retry Configurations (Opcional): Configuración de reintentos:
    • Max Backoff Duration: 320s
    • Max Doublings: 5
    • Min Backoff Duration: 5s
    • Max Retry Duration: 10s
    • Retry Count: 3

Scheduler de Tipo HTTP

Permite programar solicitudes HTTP a una URL específica.

Inputs del formulario:
  • GCP Project (Obligatorio): Proyecto en Google Cloud (Ejemplo: trmdomain-intg)
  • Job Name (Obligatorio): Nombre del job (Ejemplo: andes-update-opcon)
  • Http Target URL (Obligatorio): URL de destino (Ejemplo: https://andes-prod-api-gateway.example.com)
  • Http Target Headers: Encabezados HTTP adicionales (Ejemplo: { "Content-Type": "application/json", "Authorization": "Bearer token" })
  • Http Method: Método HTTP (GET o POST)
  • OIDC Auth (Opcional): Configuración de autenticación con OIDC:
  • OIDC Audience (Ejemplo: https://example.com)
  • OIDC SA Email (Ejemplo: service-account@example.com)
  • Schedule (Obligatorio): Expresión cron (Ejemplo: 0 4 * * *)
  • Retry Configurations (Opcional): Igual que en Pub/Sub

2. Sincronización de Schedulers

Permite sincronizar todos los Schedulers de un proyecto seleccionado.

Proceso:

  1. Seleccionar el proyecto en el campo GCP Project (Ejemplo: operationsdomain-intg)
  2. Hacer clic en Sync Scheduler
  3. El sistema detecta y registra todos los Schedulers existentes dentro del proyecto

3. Operaciones Day-2

Permite gestionar individualmente cada job.

Opciones Disponibles:
  • Force Run: Ejecuta inmediatamente el job seleccionado
  • Pause Job: Pausa temporalmente la ejecución del job
  • Resume Job: Reactiva un job pausado
  • Editar Scheduler Pub/Sub o HTTP: Permite modificar los valores y reflejarlos en GCP
  • Eliminar Scheduler: Elimina el Scheduler y su workspace

Nota: Ahora se pueden editar Schedulers creados fuera de ANDES, pero los cambios deben hacerse directamente en la API de Google y se registrarán en ANDES.

Proceso:

  1. Seleccionar el job en la lista
  2. Acceder al menú de acciones
  3. Elegir la operación requerida

Descripción Técnica del Proceso de Creación de Scheduler

El diagrama del sistema representa el flujo de trabajo para la creación y gestión de Schedulers en Google Cloud mediante herramientas integradas.

Flujo del Sistema

  1. Port: Punto de entrada donde el usuario realiza una solicitud POST con un JSON al API Gateway
  2. API Gateway: Redirige los datos al servicio Cloudrun Scheduler Sync
  3. Cloudrun Scheduler Sync:
  • Valida la información
  • Envía una solicitud para crear un workspace en Terraform Cloud
  1. Terraform Cloud:
  • Ejecuta el plan para crear o actualizar el Scheduler en Google Cloud
  • Envía notificaciones sobre el estado del workspace
  1. Google Cloud: Se crea el Scheduler en el proyecto correspondiente
  2. Port: Cuando se completa la creación, se genera un blueprint en Port como registro visual

🔹 Componentes Clave:

  • Port: Interfaz inicial
  • API Gateway: Gestiona solicitudes entrantes
  • Cloudrun Scheduler Sync: Servicio de integración
  • Terraform Cloud: Gestión de infraestructura como código
  • Google Cloud: Plataforma donde se ejecutan los schedulers

Permisos y Accesos

🔹 ¿Quién puede ver?

  • Todos los usuarios con acceso al proyecto GCP correspondiente

🔹 ¿Quién puede crear?

  • Usuarios con permisos en Google Cloud Scheduler y acceso al API Gateway

🔹 ¿Quién puede modificar?

  • Administradores del proyecto
  • Usuarios con acceso al workspace en Terraform Cloud

Interfaz de Usuario

La interfaz muestra:

  • Lista de Schedulers activos con su estado
  • Opciones de sincronización y operaciones Day-2
  • Formularios para crear y editar schedulers

Formularios y Entrega de Datos

🔹 ¿Qué se puede hacer en el formulario?

  • Crear un Scheduler desde cero
  • Editar un Scheduler existente
  • Configurar parámetros avanzados como reintentos, autenticación y payloads

🔹 ¿Cómo se entregan los datos?

  • Se envían como una solicitud POST en formato JSON al API Gateway

Ejemplo de Payload JSON:

{
"gcp_project": "trmdomain-prod",
"job_name": "andes-load-cost",
"schedule": "0 */1 * * *",
"topic": "projects/trmdomain-prod/topics/latam-cost",
"payload": { "key": "value" },
"retry_config": { "max_backoff_duration": "320s", "max_doublings": 5 }
}