Atualizando uma tarefa
É possível fazer alterações em uma tarefa definida e executar a tarefa atualizada a partir do console ou da CLI. Alterações feitas em sua tarefa podem incluir a atualização da imagem do contêiner de código, argumentos de código ou comandos, recursos de instância de tempo de execução ou variáveis de ambiente.
Sempre que sua tarefa é executada, a versão mais recente de sua imagem de contêiner referenciada é usada para a execução da tarefa, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para a execução da tarefa.
As tarefas em lote enviadas serão executadas em paralelo, se possível. Se o número ou o tamanho das tarefas submetidas excede os limites de cotas configuradas, como o número máximo de instâncias em execução, então, as Code Engine as tarefas entram na fila e sua execução será atrasada até que tarefas suficientes sejam concluídas. Para obter mais informações sobre cotas e limites de tarefas, incluindo memória e CPU, consulte Limites e cotas para Code Engine.
É possível atualizar sua tarefa e seu código referenciado de qualquer uma das maneiras a seguir, independentemente de como você criou ou atualizou previamente a sua tarefa.
-
Se você tiver uma imagem de contêiner, de acordo com o padrão da Open Container Initiative(OCI), basta fornecer apenas uma referência à imagem, que aponte para o local do seu registro de contêineres ao criar (ou atualizar) sua tarefa. Você pode criar (ou atualizar) seu trabalho a partir de imagens em um registro público ou privado e, em seguida, acessar a imagem referenciada durante a execução do seu trabalho.
Se você criou o seu job usando o comando
job createe especificou a opção--build-sourcepara construir a imagem do container a partir de origem local ou repositório, e deseja alterar o seu job para apontar para uma imagem de container diferente, deve-se primeiro remover a associação da construção a partir do seu job. Por exemplo, executeibmcloud ce job update -n JOB_NAME --build-clear. Depois de remover a associação da construção a partir do seu trabalho, você pode atualizar o trabalho para referencia uma imagem diferente. -
Se você está começando com código-fonte que reside em um repositório Git, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e implemente (ou atualize) o app com uma operação única. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando uma tarefa por meio do código-fonte do repositório. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de criar (ou atualizar) sua tarefa e executá-la.
-
Se você está começando com código-fonte que reside em uma estação de trabalho local, é possível optar por deixar que o Code Engine cuide da construção da imagem por meio de sua origem e da criação da tarefa com um comando da CLI único. Neste cenário, o Code Engine faz upload da sua imagem para o IBM Cloud® Container Registry. Para saber mais, consulte Criando sua tarefa por meio do código-fonte local com a CLI. Se você quiser mais controle sobre a construção da sua imagem, poderá optar por construir a imagem com o Code Engine antes de criar (ou atualizar) sua tarefa e executá-la.
Por exemplo, você pode optar por deixar que o Code Engine cuide da construção de sua origem local enquanto você cuida do desenvolvimento de sua origem para a tarefa. Em seguida, após o amadurecimento da imagem, é possível atualizar a tarefa para referenciar a imagem específica que desejar. É possível repetir esse processo conforme necessário.
Ao executar sua tarefa atualizada, a versão mais recente de sua imagem de contêiner referenciada é usada para a execução da tarefa, a menos que uma tag seja especificada para a imagem. Se uma tag for especificada para a imagem, a imagem marcada será usada para a execução da tarefa.
Como atualizar uma tarefa a partir do console
Quando uma tarefa está em estado pronto, é possível atualizá-la. Vamos atualizar o trabalho myjob que você criou anteriormente para alterar a saudação e a saída das variáveis de ambiente, atualizando uma variável de ambiente. Quando
uma solicitação é enviada a este trabalho de exemplo icr.io/codeengine/helloworld, o trabalho lê a variável de ambiente TARGET e exibe "Hello ${TARGET}!". Se essa variável de ambiente estiver
vazia, é retornado o valor “ "Hello World!" ”. Para obter mais informações sobre o código usado neste exemplo, consulte helloworld.
-
Navegue para a sua página de tarefa.
- Na página “Projetos” do Code Engine, clique no nome do seu projeto.
- Clique em “Trabalhos” e, em seguida, clique na guia “Trabalhos ”.
- Clique no nome da tarefa que você deseja atualizar.
-
Na guia Configuração > Variáveis de ambiente, clique em Adicionar variável de ambiente. Inclua uma variável de ambiente literal com o nome de
TARGETcom o valorSunshine. Oicr.io/codeengine/helloworldemite como saída a mensagem,Hello <value_of_TARGET>!>. -
Clique em “Adicionar” para adicionar sua variável de ambiente.
-
Clique em Implementar.
-
Clique em Enviar tarefa.
-
A partir da área de janela Enviar tarefa, desta vez altere o valor da CPU para uma das opções de CPU válidas para a memória especificada. Observe que você deve usar combinações válidas de memória e CPU. Clique em Enviar tarefa novamente para executar esta tarefa. O sistema exibe o status da sua tarefa na página Detalhes da tarefa. Observe o valor da CPU atualizado na seção
Configurationdos detalhes da tarefa. -
Ao visualizar logs da tarefa por meio do console para essa tarefa, a saída da tarefa atualizada é
Hello Sunshine!.
Atualizar uma tarefa na CLI
Com a CLI, é possível atualizar uma configuração de tarefas existente ou especificar as alterações feitas em uma nova execução de tarefa.
Atualizando uma configuração de tarefas na CLI
É possível atualizar uma configuração de tarefa existente com o comando ibmcloud ce job update.
-
Use o comando
job updatepara atualizar a tarefamyjobpara fazer referência a uma imagem diferente.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobExecute o comando
ibmcloud ce job get -n myjobpara exibir detalhes da tarefa atualizada.Saída de exemplo
Name: myjob ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Last Job Run: Name: myjob-jobrun-abcde Age: 32d Created: 2021-08-06T13:50:02-04:00 Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 [...] -
Execute o comando
ibmcloud ce jobrun submitpara executar uma tarefa que faz referência a esta configuração de tarefa atualizada. Para o comandojobrun submit, use a opção--jobpara fazer referência a uma configuração de tarefa definida. Enquanto a opção--namenão é obrigatória se a opção--jobfor especificada, o comando exemplo a seguir especifica a opção--namepara fornecer um nome para esta execução de tarefa.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
Execute
ibmcloud ce jobrun get -n myjobrun1para visualizar os detalhes desta execução de tarefa. Observe que a imagem referenciada éicr.io/codeengine/testjob, que é baseada na configuração de tarefas atualizada.Saída de exemplo
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-15T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 15s 15s Running True 11s 11s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 16s (x3 over 20s) batch-job-controller Updated JobRun "myjobrun1" Normal Completed 16s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Succeeded 0 20s
Como atualizar uma execução de tarefa na CLI
É possível especificar as alterações de uma execução de tarefa com o comando ibmcloud ce jobrun resubmit. O comando jobrun submit reenvia uma execução de tarefa que faz referência a uma execução de tarefa anterior.
-
Use o comando
jobrun resubmitpara reenviar a execução de tarefamyjobrun1e alterar os índices da matriz de0para1-4. Enquanto a opção--namenão for obrigatória para o comandojobrun resubmit, o exemplo de comando a seguir especificará a opção--namepara fornecer um nome para esta execução de tarefa.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
Execute o comando
ibmcloud ce jobrun get -n myjobrunresubmitpara exibir detalhes da execução de tarefa atualizada. Observe que o valor dos índices da matriz será atualizado para esta execução de tarefa.Saída de exemplo
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 3m6s Created: 2021-06-04T11:56:22-04:00 Job Ref: myjob Image: icr.io/codeengine/testjob Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 1-4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 34s Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 38s 38s Running True 36s 36s Complete True 34s 34s Events: Type Reason Age Source Messages Normal Updated 36s (x7 over 40s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 36s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-1-0 0/1 Succeeded 0 40s myjobrunresubmit-2-0 0/1 Succeeded 0 40s myjobrunresubmit-3-0 0/1 Succeeded 0 40s myjobrunresubmit-4-0 0/1 Succeeded 0 40s
As execuções de tarefas enviadas (ou reenviadas) na CLI que não fazem referência a uma configuração de tarefa definida não podem ser visualizadas a partir do console.