Esegui job in base a una pianificazione

Questa pagina descrive come eseguire job Cloud Run in base a una pianificazione utilizzando Cloud Scheduler.

Se il tuo progetto Google Cloud si trova all'interno di un perimetro di Controlli di servizio VPC in una rete Virtual Private Cloud, consulta Eseguire job in base a una pianificazione in un perimetro di Controlli di servizio VPC per istruzioni su come pianificare i job per questo caso d'uso.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per le operazioni descritte in questa pagina, chiedi all'amministratore di concederti i ruoli IAM nel tuo job Cloud Run:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM Cloud Run. Se il tuo job Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.

Prima di iniziare

Crea un job Cloud Run.

Configura un job Cloud Run da eseguire in base a una pianificazione

Per eseguire un job Cloud Run in base a una pianificazione:

Console

  1. Vai ai job Cloud Run

  2. Fai clic sul job da eseguire in base a una pianificazione.

  3. Fai clic sulla scheda Attivatori.

  4. Fai clic su Aggiungi trigger dello scheduler.

  5. Se non hai ancora abilitato l'API Cloud Scheduler per il tuo progetto, ti viene chiesto di farlo nel riquadro all'estrema destra: fai clic su Abilita API.

  6. Compila il modulo del job Cloud Scheduler

    immagine

  7. Nella sezione Definisci una pianificazione:

    1. Assegna un nome al job Cloud Scheduler.

    2. Seleziona una regione per il job Cloud Scheduler. Non deve corrispondere alla regione utilizzata per il job Cloud Run.

    3. Specifica la frequenza di esecuzione del job utilizzando il formato unix-cron, ad esempio 0 12 * * *

    4. Seleziona il tuo fuso orario.

  8. Fai clic su Continua.

  9. Nel menu a discesa Service account, seleziona un account di servizio che disponga dell'autorizzazione per richiamare il servizio Cloud Run corrente.

  10. Fai clic su Crea per creare il job Cloud Scheduler che eseguirà il job Cloud Run alla frequenza specificata.

Riga di comando

  1. Assicurati di creare prima un job Cloud Run.

  2. Esegui il comando:

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

    Sostituisci

    • SCHEDULER_JOB_NAME con il nome che vuoi assegnare al job di pianificazione.
    • SCHEDULER_REGION con una regione supportata da Cloud Scheduler, ad esempio europe-west2.
    • CLOUD_RUN_REGION con la regione del tuo job Cloud Run. Per l'anteprima, utilizza europe-west9.
    • SCHEDULE con la frequenza desiderata, ad esempio 0 12 * * *
    • PROJECT-ID con l'ID progetto.
    • PROJECT-NUMBER con il numero del tuo progetto.
    • JOB-NAME con il tuo job Cloud Run.

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Aggiungi quanto segue a una risorsa google_cloud_run_v2_job nella configurazione Terraform:

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]
}

Cloud Scheduler eseguirà il job Cloud Run alla frequenza specificata.

Passaggi successivi

Dopo aver utilizzato questa funzionalità, puoi: