Nesta página, descrevemos como executar jobs do Cloud Run. A execução de um job cria uma execução de job em que todas as tarefas precisam ser concluídas até o fim. As execuções do job gravam registros no Cloud Logging e enviam dados de monitoramento ao Cloud Monitoring.
Além desses recursos de geração de registros, também é possível visualizar detalhes das 1000 execuções mais recentes de um job usando o painel de detalhes da execução, com todas as execuções que ocorreram nos últimos sete dias. Os detalhes das execuções mais antigas são removidos e não ficam mais visíveis no painel de detalhes da execução. No entanto, os registros e os dados de monitoramento de execuções mais antigas ainda estão disponíveis no Cloud Logging e no Cloud Monitoring, sujeitos às políticas de retenção desses produtos
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ê um dos seguintes papéis do IAM no job do Cloud Run:
- Para executar jobs usando a CLI do Google Cloud: invocador do Cloud Run (
roles/run.invoker
) no job do Cloud Run - Para executar jobs usando o console do Google Cloud, substituir as configurações de jobs ou cancelar execuções de jobs: Cloud Run Developer (
roles/run.developer
) 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.
Executar jobs
É possível executar jobs usando o console do Google Cloud ou a CLI do Google Cloud.
Console
Para executar um job:
Localize o job em que você tem interesse.
Clique no job para exibir a página de detalhes.
Clique em Executar.
gcloud
Para executar um job atual:
gcloud run jobs execute JOB_NAME
Se você quiser que o comando aguarde até que a execução seja concluída, use
gcloud run jobs execute JOB_NAME --wait --region=REGION
Substitua:
- Substitua JOB_NAME pelo nome do job.
- REGION pela região em que o recurso pode ser encontrado.
Como alternativa, defina a propriedade
run/region
.
Bibliotecas de cliente
Para executar um job atual a partir do código, siga estas etapas:
API REST
Para executar um job atual, envie uma solicitação HTTP POST
para o método de API jobs.run
.
Por exemplo, usando curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta que tenha as permissões do IAM para executar um job.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token
. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - Substitua JOB-NAME pelo nome do job.
- REGION pela região do Google Cloud do job.
- PROJECT-ID pelo ID do projeto do Google Cloud.
Executar jobs imediatamente após a criação deles
Se você usar a linha de comando, poderá especificar a execução do job imediatamente após a criação deles:
gcloud run jobs create JOB_NAME --execute-now --region=REGION
Substituir configuração do job para uma execução específica
É possível substituir os argumentos, as variáveis de ambiente, o número de tarefas e tempo limite da tarefa configurados para um job ao executar um job. Para isso, defina esses parâmetros ao iniciar uma nova execução de job. Os parâmetros especificados afetam apenas essa execução e não as seguintes, porque a definição do job subjacente permanece inalterada.
Veja alguns casos de uso comuns:
- Você executa o job de modo programático pelo seu código e quer substituir argumentos e/ou variáveis de ambiente, por exemplo, para informar ao job onde os dados de entrada estão localizados para essa execução.
- Você tem um job em que cada tarefa visa processar apenas uma parte dos dados de entrada. Você quer substituir o número de tarefas com base no número de entradas a serem processadas.
- O tempo de execução do job varia entre as execuções. Você quer substituir o tempo limite da tarefa com base no tempo de execução esperado do job.
Para substituir a configuração do job para uma execução:
Console
Localize o job em que você tem interesse.
Clique no job para exibir a página de detalhes.
Clique na seta de expansão na frente do botão Editar e em Executar com substituições para exibir o formulário Executar job com substituições.
Altere os argumentos, as variáveis de ambiente, o número de tarefas e/ou a configuração de tempo limite da tarefa para essa execução conforme preferir e clique em Executar.
gcloud
Use o comando:
gcloud run jobs execute JOB_NAME \ --args ARGS \ --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \ --tasks TASKS \ --task-timeout TIMEOUT
Substituir
- Substitua JOB_NAME pelo nome do job.
- ARGS pelos argumentos do job desejados.
- Pares de KEY e VALUE com as variáveis de ambiente desejadas
- TASKS pelo número de tarefas desejado.
- TIMEOUT pelo tempo limite da tarefa desejado.
Bibliotecas de cliente
Para executar um job atual usando o código, substituindo a configuração do job:
API REST
Para substituir a configuração de um job atual, envie uma solicitação HTTP POST
para fazer a solicitação ao endpoint jobs
da API Cloud Run Admin.
Por exemplo, usando curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASK-COUNT, "timeout": "TIMEOUT" }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta com as permissões do IAM para executar substituições de job.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token
. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - Substitua JOB_NAME pelo nome do job.
- ARGS com argumentos de job.
- Pares de KEY e VALUE com variáveis de ambiente.
- TASKS pelo número de tarefas.
- TIMEOUT pelo tempo limite da tarefa.
- REGION pela região do Google Cloud do job.
- PROJECT-ID pelo ID do projeto do Google Cloud.
Cancelar execução do job
Para interromper a execução de um job do Cloud Run em execução, use o recurso de cancelamento. O cancelamento de uma execução de job interrompe a execução atual do job. As execuções canceladas têm o status canceled. Você ainda poderá ver a execução, incluindo os dados de configuração, os registros e os dados de monitoramento.
O cancelamento de uma execução de job não reverte as cobranças relacionadas ao uso de jobs do Cloud Run pelo tempo de execução.
Para cancelar uma execução:
Console
Clique no job para abrir os detalhes.
Selecione a execução do job que você quer cancelar.
No menu Ações, clique no ícone de reticências e em Cancelar.
gcloud
Use o comando:
gcloud run jobs executions cancel EXECUTION_NAME
Substitua EXECUTION_NAME
pelo nome da execução.
Esse comando solicita confirmação. Portanto, responda ao prompt digitando
y
para confirmar.
Bibliotecas de cliente
Para cancelar a execução de um job a partir do código:
API REST
Para cancelar a execução de um job, envie uma solicitação HTTP POST
para o endpoint jobs
da API Cloud Run Admin.
Por exemplo, usando curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME/executions/EXECUTION-NAME:cancel
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta com as permissões do IAM para cancelar execuções de jobs.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token
. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - Substitua JOB_NAME pelo nome do job.
- Substitua EXECUTION-NAME pelo nome do job.
- REGION pela região do Google Cloud do job.
- PROJECT-ID pelo ID do projeto do Google Cloud.
Excluir uma execução de job
É possível excluir uma execução de job, mesmo que ela esteja em execução no momento. Se você excluir uma execução, ela interromperá a execução. Para detalhes, consulte Excluir uma execução de job.
A seguir
Depois de executar um job, faça o seguinte: