Ejecuta trabajos según un programa

En esta página, se describe cómo ejecutar trabajos de Cloud Run según un programa con Cloud Scheduler.

Antes de comenzar

Crea un trabajo de Cloud Run.

Configura un trabajo de Cloud Run para que se ejecute según un programa

Para ejecutar un trabajo de Cloud Run según un programa, haz lo siguiente:

Consola

  1. Ir a Trabajos de Cloud Run

  2. Haz clic en el trabajo que deseas ejecutar según un programa.

  3. Hacer clic en la pestaña Activadores

  4. Haz clic en Agregar activador de Scheduler.

  5. Si aún no habilitaste la API de Cloud Scheduler para tu proyecto, se te solicitará que lo hagas en el panel derecho: haz clic en Habilitar API.

  6. Completa el formulario de trabajo de Cloud Scheduler

    imagen

  7. En Define a program, haz lo siguiente:

    1. Asigna un nombre a tu trabajo de Cloud Scheduler.

    2. Selecciona una región para tu trabajo de Cloud Scheduler. No es necesario que coincida con la región que se usa para el trabajo de Cloud Run.

    3. Especifica la frecuencia de tu trabajo usando el formato unix-cron, por ejemplo, 0 12 * * *

    4. Selecciona tu zona horaria.

  8. Haz clic en Continuar.

  9. En el menú desplegable Cuenta de servicio, selecciona una cuenta de servicio que tenga permiso para invocar el servicio actual de Cloud Run.

  10. Haz clic en Crear para crear el trabajo de Cloud Scheduler que ejecutará el trabajo de Cloud Run con la frecuencia especificada.

Línea de comandos

  1. Asegúrate de crear un trabajo de Cloud Run primero.

  2. Ejecuta el comando:

    gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
      --location SCHEDULER_REGION \
      --schedule="SCHEDULE" \
      --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com

    Reemplazar

    • SCHEDULER_JOB_NAME por el nombre que deseas asignar a tu trabajo de programador.
    • SCHEDULER_REGION por una región compatible con Cloud Scheduler, por ejemplo, europe-west2.
    • CLOUD_RUN_REGION por la región del trabajo de Cloud Run. Para obtener una vista previa, usa europe-west9.
    • SCHEDULE por la frecuencia deseada, por ejemplo 0 12 * * *.
    • PROJECT-ID por el ID del proyecto
    • PROJECT-NUMBER por el número de tu proyecto.
    • JOB-NAME por tu trabajo de Cloud Run.

Terraform

Para crear un trabajo de Cloud Scheduler que ejecute un trabajo de Cloud Run, sigue estos pasos:

resource "google_cloud_scheduler_job" "job" {
  provider         = google-beta
  name             = "schedule-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  attempt_deadline = "320s"
  region           = "us-central1"
  project          = data.google_project.project.project_id

  retry_config {
    retry_count = 3
  }

  http_target {
    http_method = "POST"
    uri         = "https://${google_cloud_run_v2_job.default.location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${data.google_project.project.number}/jobs/${google_cloud_run_v2_job.default.name}:run"

    oauth_token {
      service_account_email = google_service_account.cloud_run_invoker_sa.email
    }
  }

  depends_on = [resource.google_project_service.cloudscheduler_api, resource.google_cloud_run_v2_job.default, resource.google_cloud_run_v2_job_iam_binding.binding]
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Cloud Scheduler ejecutará el trabajo de Cloud Run con la frecuencia especificada.

¿Qué sigue?

Después de usar esta función, puedes hacer lo siguiente: