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.

Roles obligatorios

Para obtener los permisos que necesitas para las operaciones descritas en esta página, pídele a tu administrador que te otorgue los roles de IAM en tu trabajo de Cloud Run:

Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu trabajo de Cloud Run interactúa con las APIs de Google Cloud, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información acerca de cómo otorgar roles, consulta Permisos de implementación y Administra el acceso.

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:

  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.

  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.

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: