Executar jobs em uma programação

Nesta página, descrevemos como executar jobs do Cloud Run em uma programação usando o Cloud Scheduler.

Funções exigidas

Para receber as permissões necessárias para as operações descritas nesta página, peça ao administrador para conceder a você os papéis do IAM no job do Cloud Run:

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o job do Cloud Run interagir com APIs do Google Cloud, como bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Antes de começar

Crie um job do Cloud Run.

Configurar um job do Cloud Run para ser executado em uma programação

Para executar um job do Cloud Run em uma programação:

Console

  1. Acessar jobs do Cloud Run

  2. Clique no job que você quer executar em uma programação.

  3. Clique na guia Gatilhos.

  4. Clique em Adicionar gatilho do programador.

  5. Se você ainda não ativou a API Cloud Scheduler para seu projeto, no painel direito, clique em Ativar API.

  6. Preencher o formulário de jobs do Cloud Scheduler

    imagem

  7. Em Definir uma programação:

    1. Dê um nome ao job do Cloud Scheduler.

    2. Selecione uma região para seus jobs do Cloud Scheduler. Ele não precisa corresponder à região usada para o job do Cloud Run.

    3. Especifique a frequência da execução do job usando o formato unix-cron, por exemplo, 0 12 * * *

    4. Selecione seu fuso horário.

  8. Clique em Continuar.

  9. No menu suspenso Conta de serviço, selecione uma conta que tenha permissão para invocar o serviço atual do Cloud Run.

  10. Clique em Criar para criar o job do Cloud Scheduler que executará o job do Cloud Run na frequência especificada.

Linha de comando

  1. Primeiro, crie um job do Cloud Run.

  2. Execute o 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

    Substituir

    • SCHEDULER_JOB_NAME pelo nome que você quer dar ao job do programador;
    • SCHEDULER_REGION por uma região compatível com o Cloud Scheduler, por exemplo, europe-west2.
    • CLOUD_RUN_REGION pela região do seu job do Cloud Run. Para visualização, use europe-west9.
    • SCHEDULE pela frequência desejada. Por exemplo: 0 12 * * *
    • PROJECT-ID pelo código do projeto;
    • PROJECT-NUMBER pelo número do projeto.
    • JOB-NAME pelo job do Cloud Run.

Terraform

Para criar um job do Cloud Scheduler que execute um job do Cloud Run:

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

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

O Cloud Scheduler executará o job do Cloud Run na frequência especificada.

A seguir

Após usar esse recurso, você poderá fazer o seguinte: