Por predefinição, cada tarefa é executada durante um máximo de 10 minutos: pode alterar este valor para um período mais curto ou mais longo, até 168 horas (7 dias). O suporte para tempos limite superiores a 24 horas está disponível na pré-visualização.
Definir o limite de tempo da tarefa, conforme descrito nesta página. Não existe um limite de tempo explícito para a execução de uma tarefa: quando todas as tarefas são concluídas, a execução da tarefa é concluída.
As unidades especificam uma duração. Pode especificar a duração do limite de tempo como um valor inteiro em segundos, minutos ou horas. Por exemplo, para definir a duração do limite de tempo como 10 minutos e 5 segundos, especifique o valor como 605
segundos.
Se a sua tarefa tiver repetições ativadas, a definição de limite de tempo aplica-se a cada tentativa de uma tarefa. Se a tentativa de tarefa não for concluída dentro deste período, é interrompida. Quanto mais tempo uma tarefa for executada, maior é a probabilidade de encontrar problemas que fazem com que falhe, como falhas de dependência a jusante, erros de falta de memória ou problemas de infraestrutura. Recomendamos que ative as novas tentativas para todas as tarefas, mas especialmente para tarefas de execução prolongada.
Eventos de manutenção
Os trabalhos são submetidos periodicamente a eventos de manutenção. Durante um evento de manutenção, todas as tarefas em curso são migradas da máquina atual para uma máquina diferente. Existe uma breve pausa no processamento enquanto a tarefa é migrada.
O processo de migração preserva o estado da tarefa, com uma exceção notável: as ligações de rede da VPC de saída são interrompidas durante os eventos de manutenção. Recomendamos que use bibliotecas de cliente que possam processar reposições ocasionais de ligação.
O Cloud Run imprime uma mensagem de registo sempre que uma tarefa é iniciada e termina a migração.
Além disso, se quiser monitorizar ou processar eventos de manutenção de uma forma específica, pode captar o sinal SIGTSTP
, que é enviado 10 segundos antes de uma tarefa ser migrada. Após a migração, a tarefa recebe um sinal SIGCONT
imediatamente
após o reinício da tarefa.
O seguinte exemplo de Go é uma função que deteta estes sinais e imprime uma entrada de registo:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
Funções necessárias
Para receber as autorizações de que precisa para configurar tarefas do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Programador do Cloud Run (
roles/run.developer
) na tarefa do Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se a sua tarefa do Cloud Run interagir com Google Cloud APIs, como as bibliotecas de cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Defina o limite de tempo da tarefa
Para especificar o limite de tempo da tarefa para uma tarefa do Cloud Run:
Consola
Na Google Cloud consola, aceda à página Tarefas do Cloud Run:
Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.
Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.
Clique no separador Geral.
- No campo Tempo limite da tarefa, especifique a duração máxima das tarefas do trabalho no trabalho atual e selecione uma Unidade de tempo. Só pode especificar a duração do limite de tempo como um valor inteiro em segundos, minutos ou horas. Por exemplo, para definir uma duração de 10 minutos e 5 segundos, no campo Limite de tempo da tarefa, especifique
605
e selecione a Unidade de tempo como segundo.
- No campo Tempo limite da tarefa, especifique a duração máxima das tarefas do trabalho no trabalho atual e selecione uma Unidade de tempo. Só pode especificar a duração do limite de tempo como um valor inteiro em segundos, minutos ou horas. Por exemplo, para definir uma duração de 10 minutos e 5 segundos, no campo Limite de tempo da tarefa, especifique
Clique em Criar ou Atualizar.
gcloud
Para um trabalho que está a criar:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
Substituir
- JOB_NAME com o nome do seu trabalho.
- IMAGE_URL: uma referência à
imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT com a duração máxima das tarefas do trabalho,
especificando a quantidade de tempo e as unidades: por exemplo,
10m5s
são dez minutos e cinco segundos.
Para um trabalho que está a atualizar:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Atualize o atributo
timeoutSeconds:
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Substituir:
- JOB_NAME com o nome do seu trabalho.
- IMAGE_URL: uma referência à
imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT com a duração máxima das tarefas do trabalho,
especificando o tempo e as unidades. Só pode especificar o tempo como um valor inteiro em segundos, minutos ou horas. Por exemplo, para definir uma duração de 10 minutos e 5 segundos, especifique
605
.
Também pode especificar mais detalhes de configuração, como variáveis de ambiente ou limites de memória.
Atualize a configuração da tarefa existente:
gcloud run jobs replace job.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_job
na sua configuração do Terraform:Veja as definições de limite de tempo das tarefas
Para ver as definições de tempo limite da tarefa atuais para a sua tarefa do Cloud Run:
Consola
Na Google Cloud consola, aceda à página Tarefas do Cloud Run:
Clique no trabalho que lhe interessa para abrir a página Detalhes do trabalho.
Clique em Ver e editar configuração da tarefa.
Localize a definição de tempo limite da tarefa nos detalhes de configuração.
gcloud
Use o seguinte comando:
gcloud run jobs describe JOB_NAME
Localize a definição de tempo limite da tarefa na configuração devolvida.