Esta página descreve como atrasar a execução de um job. A execução atrasada permite adiar tarefas não urgentes por até 12 horas. Ao usar esse recurso, o job é provisionado durante uma janela de baixa utilização, em troca de um preço mais baixo. Consulte a página de preços para mais detalhes.
Especificamente:
- O provisionamento de uma execução de job atrasada pode levar até 12 horas, e a duração total de todas as tarefas em uma execução de job atrasada é de 12 horas. Em combinação, esses requisitos garantem que uma execução atrasada seja concluída em 24 horas.
- Dado o exposto acima, o limite de tempo limite da tarefa para um job atrasado é de 12 horas.
- Quando a execução de um job atrasado atinge o limite máximo de duração, ela é cancelada pelo sistema.
Jobs regulares x jobs atrasados
Todo job do Cloud Run é criado como um job regular ou atrasado.
Independente de como o job foi criado, é possível executá-lo como o outro tipo. Para mais detalhes, consulte:
Preços
Para saber mais sobre os preços dos jobs atrasados do Cloud Run, consulte Preços do Cloud Run.
Funções exigidas
Para receber as permissões necessárias para criar jobs do Cloud Run, peça ao administrador para conceder as seguintes funções do IAM:
- Desenvolvedor do Cloud Run (
roles/run.developer) no job do Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade do serviço - Leitor do Artifact Registry (
roles/artifactregistry.reader) no repositório do Artifact Registry das imagens de contêiner do job
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 interage com Google Cloud APIs, como as 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.
Criar um job atrasado
Por padrão, quando você cria e executa um novo job, a execução começa o mais rápido possível.
Com o recurso de jobs atrasados, é possível criar um job que tenha execução atrasada integrada desde o momento da criação:
Console
No Google Cloud console, acesse a página do Cloud Run:
Selecione Jobs no menu de navegação do Cloud Run e clique em Implantar contêiner para mostrar o formulário Criar job.
Preencha os campos no formulário Criar job, conforme descrito em Criar jobs.
Selecione Atrasar execução para adiar a execução em até 12 horas.
gcloud
Crie o job usando a flag --delay-execution:
gcloud beta run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --region=REGION
Se você criou o job como um job atrasado, não é necessário incluir a flag --delay-execution para executá-lo:
gcloud beta run jobs execute JOB_NAME \ --region=REGION
YAML
Atualize o job.yaml com o atributo delayExecution definido como true:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
Executar um job regular como um job atrasado
Para executar um job regular como um job atrasado:
Console
No Google Cloud console, acesse a página do Cloud Run:
Clique no nome do job que você quer editar.
Clique em Ver e editar a configuração do job.
Selecione Execução atrasada.
Clique em Atualizar.
gcloud
Execute este comando:
gcloud beta run jobs execute JOB_NAME \ --async \ --delay-execution \ --region=REGION
YAML
Atualize o job.yaml com o atributo delayExecution definido como true:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
Executar um job atrasado como um job regular
Quando você desativa a execução atrasada, o job é atualizado para ser um job regular. Isso significa que, na próxima vez que você executar esse job, ele será executado o mais rápido possível.
Para desativar a execução atrasada:
Console
No Google Cloud console, acesse a página do Cloud Run:
Clique no nome do job que você quer editar.
Clique em Ver e editar a configuração do job.
Desmarque Execução atrasada.
Clique em Atualizar.
gcloud
Use a flag --no-delay-execution. Também é possível usar essa flag com os comandos update. Se você usar essa flag para um job regular, ela atualizará o job para desativar a execução atrasada.
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --no-delay-execution \ --region=REGION
YAML
Atualize o job.yaml com o atributo delayExecution definido como false:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "false"
Executar um job atrasado na criação ou atualização
Quando você cria um job atrasado com a flag --execute-now, ele aciona
a execução na criação e o job é executado em algum momento nas próximas 12 horas.
Para executar um job atrasado na criação ou atualização:
Console
No Google Cloud console, acesse a página Jobs do Cloud Run:
Se você tiver um job atrasado, clique nele para mostrar a página de detalhes do job e selecione Ver e editar a configuração do job. Se você estiver criando um novo job atrasado, selecione Implantar contêiner.
Acesse a parte de baixo da página e marque a caixa Executar job imediatamente antes de criar ou atualizar o job.
gcloud
Especifique a --execute-now
flag ao criar ou atualizar um job atrasado:
Criar um job:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --execute-now \ --region=REGION
Atualizar um job:
gcloud run jobs update JOB_NAME \ --execute-now \ --region=REGION