Executar tarefas

Esta página descreve como executar tarefas do Cloud Run. A execução de uma tarefa cria uma execução de tarefa na qual todas as tarefas têm de ser executadas até à conclusão com êxito para que a execução de tarefa seja bem-sucedida. As execuções de tarefas escrevem registos no Cloud Logging e enviam dados de monitorização para o Cloud Monitoring.

Além destas funcionalidades de registo, também pode ver os detalhes de execução das tarefas para as 1000 execuções mais recentes de uma tarefa através do painel de detalhes de execução, juntamente com todas as execuções que ocorreram nos últimos sete dias. Os detalhes de execução mais antigos são removidos e deixam de estar visíveis no painel de detalhes de execução. No entanto, os registos e os dados de monitorização das execuções mais antigas continuam disponíveis no Cloud Logging e no Cloud Monitoring, sujeitos às políticas de retenção desses produtos.

Funções necessárias

Para receber as autorizações necessárias para as operações descritas nesta página, peça ao seu administrador que lhe conceda uma das seguintes funções da IAM no seu trabalho do Cloud Run:

  • Para executar tarefas através da CLI do Google Cloud: Cloud Run Invoker (roles/run.invoker) na tarefa do Cloud Run
  • Para executar tarefas através da Google Cloud consola, substituir configurações de tarefas ou cancelar execuções de tarefas: programador do Cloud Run (roles/run.developer) na tarefa do Cloud Run

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.

Executar tarefas

Pode executar tarefas através da Google Cloud consola, da Google Cloud CLI, das bibliotecas cliente ou da API REST.

Consola

Para executar uma tarefa:

  1. Aceda à página de tarefas do Cloud Run

  2. Localize o trabalho no qual tem interesse.

  3. Clique na tarefa para apresentar a página de detalhes da tarefa.

  4. Clique em Executar.

gcloud

Para executar uma tarefa existente:

gcloud run jobs execute JOB_NAME

Se quiser que o comando aguarde até que a execução seja concluída, use

gcloud run jobs execute JOB_NAME --wait --region=REGION

Substituir:

  • JOB_NAME com o nome do trabalho.
  • REGION com a região em que o recurso pode ser encontrado. Em alternativa, defina a propriedade run/region.

Bibliotecas cliente

Para executar uma tarefa existente a partir do código:

API REST

Para executar uma tarefa existente, envie um pedido HTTP POST para o método da API jobs.run

Por exemplo, usar 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

Substituir:

  • ACCESS_TOKEN com um token de acesso válido para uma conta que tenha as autorizações de IAM para executar uma tarefa. Por exemplo, se tiver sessão iniciada no gcloud, pode obter um token de acesso através de gcloud auth print-access-token. A partir de uma instância de contentor do Cloud Run, pode obter um token de acesso através do servidor de metadados da instância de contentor.
  • JOB-NAME com o nome do trabalho.
  • REGION com a Google Cloud região da tarefa.
  • PROJECT-ID com o Google Cloud ID do projeto.

Executar tarefas imediatamente após a criação

Se usar a linha de comandos, pode especificar a execução da tarefa imediatamente após a criação da mesma:

gcloud run jobs create JOB_NAME --execute-now --region=REGION

Substitua a configuração da tarefa para uma execução específica

Pode substituir os argumentos, as variáveis de ambiente, o número de tarefas e o limite de tempo das tarefas configurados para uma tarefa quando executa uma tarefa definindo estes parâmetros quando inicia uma nova execução de tarefas. Os parâmetros especificados afetam apenas esta execução e não as subsequentes, porque a definição da tarefa subjacente permanece inalterada.

Seguem-se alguns exemplos de utilização comuns:

  • Executa a tarefa de forma programática a partir do seu código e quer substituir os argumentos e/ou as variáveis de ambiente, por exemplo, para indicar à tarefa onde os dados de entrada estão localizados para esta execução.
  • Tem uma tarefa em que cada tarefa se destina apenas a processar um elemento de dados de entrada. Quer substituir o número de tarefas com base no número de entradas a processar.
  • O tempo de execução da tarefa varia entre execuções. Quer substituir o limite de tempo da tarefa com base no tempo de execução esperado da tarefa.

Para substituir a configuração da tarefa para uma execução:

Consola

  1. Aceda à página de tarefas do Cloud Run

  2. Localize o trabalho no qual tem interesse.

  3. Clique na tarefa para apresentar a página de detalhes da tarefa.

  4. Clique na seta de expansão junto ao botão Editar e clique em Executar com substituições para apresentar o formulário Executar tarefa com substituições.

    imagem

  5. Altere os argumentos, as variáveis de ambiente, o número de tarefas e/ou a configuração de tempo limite das tarefas para esta execução conforme pretendido e, de seguida, 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

Bibliotecas cliente

Para executar uma tarefa existente a partir do código, substituindo a configuração da tarefa:

API REST

Para substituir a configuração de uma tarefa existente, envie um pedido HTTP POST para o ponto final da jobs API Cloud Run Admin

Por exemplo, usar 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

Substituir:

Cancelar execução da tarefa

Para parar a execução de uma tarefa do Cloud Run em execução, use a funcionalidade de cancelamento. O cancelamento de uma execução de trabalho interrompe a execução de trabalho atual. As execuções canceladas têm o estado cancelado. Continua a poder ver a execução, incluindo os respetivos dados de configuração, registos e dados de monitorização.

O cancelamento da execução de uma tarefa não reverte os encargos de qualquer utilização de tarefas do Cloud Run durante o tempo em que a tarefa foi executada.

Para cancelar uma execução:

Consola

  1. Aceda à página de tarefas do Cloud Run

  2. Clique na tarefa para abrir o painel de detalhes da tarefa.

  3. Selecione a execução da tarefa que quer cancelar.

  4. No menu Ações, clique no ícone de reticências e, de seguida, em Cancelar.

gcloud

Use o comando:

gcloud run jobs executions cancel EXECUTION_NAME

Substitua EXECUTION_NAME pelo nome da execução.

Este comando pede confirmação. Por isso, responda ao comando introduzindo y para confirmar.

Bibliotecas cliente

Para cancelar a execução de uma tarefa a partir do código:

API REST

Para cancelar a execução de uma tarefa, envie um pedido HTTP para solicitar o ponto final da jobsAPI Admin do Cloud RunPOST

Por exemplo, usar 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

Substituir:

  • ACCESS_TOKEN com um token de acesso válido para uma conta que tenha as autorizações de IAM para cancelar execuções de tarefas. Por exemplo, se tiver sessão iniciada no gcloud, pode obter um token de acesso através de gcloud auth print-access-token. A partir de uma instância de contentor do Cloud Run, pode obter um token de acesso através do servidor de metadados da instância de contentor.
  • JOB_NAME com o nome do trabalho.
  • EXECUTION-NAME com o nome da execução da tarefa.
  • REGION com a Google Cloud região da tarefa.
  • PROJECT-ID com o Google Cloud ID do projeto.

Elimine uma execução de tarefa

Pode eliminar uma execução de tarefa, mesmo que esteja atualmente em execução. Se eliminar uma execução, impede que esta continue. Para obter detalhes, consulte o artigo Elimine uma execução de tarefa.

O que se segue?

Depois de executar uma tarefa, pode fazer o seguinte: