Aggiornamento di un lavoro
È possibile apportare modifiche a un lavoro definito ed eseguire il lavoro aggiornato dalla console o con la CLI. Le modifiche al tuo lavoro potrebbero includere l'aggiornamento dell'immagine del contenitore di codice, gli argomenti o i comandi del codice, le risorse dell'istanza di runtime o le variabili di ambiente.
Ogni volta che viene eseguito il lavoro, viene utilizzata l'ultima versione della tua immagine del contenitore di riferimento per l'esecuzione del lavoro, a meno che non venga specificata una tag per l'immagine. Se viene specificato un tag per l'immagine, l'immagine con tag viene utilizzata per l'esecuzione del lavoro.
I lavori batch inoltrati vengono eseguiti in parallelo, se possibile. Se il numero o la dimensione dei lavori inoltrati supera i limiti di quota configurati, come il numero massimo di istanze in esecuzione, Code Engine accoda i lavori e ritarda l'esecuzione fino al termine di un numero sufficiente di lavori. Per ulteriori informazioni sulle quote e i limiti per i lavori, inclusi memoria e CPU, vedi Limiti e quote per Code Engine.
È possibile aggiornare il lavoro e il relativo codice di riferimento in qualsiasi dei seguenti modi, indipendentemente dal modo in cui è stato creato o precedentemente aggiornato il lavoro.
-
Se hai un'immagine del contenitore, in base allo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando crei (o aggiorni) il tuo lavoro. Puoi creare (o aggiornare) il tuo lavoro dalle immagini in un registro pubblico o in un Registro privato e quindi accedere all'immagine di riferimento dalla tua esecuzione del lavoro.
Se hai creato il tuo lavoro utilizzando il comando
job createe hai specificato l'opzione--build-sourceper creare l'immagine del contenitore dall'origine del repository o locale e vuoi modificare il tuo lavoro in modo che punti a un'altra immagine del contenitore, devi prima rimuovere l'associazione della build dal tuo lavoro. Ad esempio, eseguireibmcloud ce job update -n JOB_NAME --build-clear. Dopo aver rimosso l'associazione della build dal tuo lavoro, puoi aggiornare il lavoro per fare riferimento a un'immagine diversa. -
Se stai iniziando con il codice sorgente che risiede in un repository Git, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare (o aggiornare) il lavoro con una singola operazione. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, consultare Creazione di un lavoro dal codice sorgente del repository. Se vuoi avere un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguirlo.
-
Se stai iniziando con il codice di origine che risiede su una workstation locale, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare il lavoro con un singolo comando CLI. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Creazione del tuo lavoro dal codice sorgente locale con la CLI. Se vuoi avere un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguirlo.
Ad esempio, potresti scegliere di lasciare che Code Engine gestisca la creazione della tua origine locale mentre evolvi lo sviluppo della tua origine per il lavoro. Quindi, una volta maturata l'immagine, puoi aggiornare il job per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.
Quando esegui il tuo job aggiornato, per l'esecuzione del job viene utilizzata l'ultima versione della tua immagine del contenitore di riferimento, a meno che non venga specificata una tag per l'immagine. Se viene specificato un tag per l'immagine, l'immagine con tag viene utilizzata per l'esecuzione del lavoro.
Aggiornamento di un lavoro dalla console
Quando un job è in stato pronto, è possibile aggiornare il job. Aggiorniamo il lavoro myjob creato in precedenza per modificare l'output delle variabili di saluto e di ambiente aggiornando una variabile di ambiente. Quando viene
inviata una richiesta a questo lavoro di esempio icr.io/codeengine/helloworld, il lavoro legge la variabile d'ambiente TARGET e stampa "Hello ${TARGET}!". Se questa variabile di ambiente è vuota,
viene restituito "Hello World!". Per ulteriori informazioni sul codice utilizzato per questo esempio, vedere helloworld.
-
Passare alla propria pagina di lavoro.
- Nella pagina "Progetti"(Code Engine ), clicca sul nome del tuo progetto.
- Fare clic su "Lavori", quindi sulla scheda "Lavori".
- Fai clic sul nome del lavoro che desideri aggiornare.
-
Nella scheda Configurazione > Variabili d'ambiente, fare clic su Aggiungi variabile d'ambiente. Aggiungere una variabile di ambiente letterale con il nome
TARGETcon il valoreSunshine.icr.io/codeengine/helloworldemette il messaggio,Hello <value_of_TARGET>!>. -
Fare clic su Aggiungi per aggiungere la variabile d'ambiente.
-
Fai clic su Deploy.
-
Fare clic su Inoltra lavoro.
-
Dal pannello Inoltra lavoro, questa volta modificare il valore CPU in una delle scelte CPU valide per la memoria specificata. Notare che è necessario utilizzare combinazioni di memoria e CPU valide. Fare nuovamente clic su Inoltra lavoro per eseguire questo lavoro. Il sistema visualizza lo stato del lavoro nella pagina Dettagli lavoro. Si noti il valore CPU aggiornato nella sezione
Configurationdei dettagli del lavoro. -
visualizzando le registrazioni lavori dalla console per questo lavoro, l'output del lavoro aggiornato è
Hello Sunshine!.
Aggiornamento di un lavoro con la CLI
Con la CLI, puoi aggiornare una configurazione del lavoro esistente o specificare le tue modifiche su una nuova esecuzione del lavoro.
Aggiornamento di una configurazione del lavoro con la CLI
È possibile aggiornare una configurazione lavoro esistente con il comando ibmcloud ce job update.
-
Utilizzare il comando
job updateper aggiornare il jobmyjobin modo che faccia riferimento ad un'immagine differente.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobEseguire il comando
ibmcloud ce job get -n myjobper visualizzare i dettagli del lavoro aggiornato.Output di esempio
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 [...] -
Eseguire il comando
ibmcloud ce jobrun submitper eseguire un job che fa riferimento a questa configurazione del job aggiornata. Per il comandojobrun submit, utilizzare l'opzione--jobper fare riferimento ad una configurazione del job definito. Mentre l'opzione--namenon è richiesta se è specificata l'opzione--job, il seguente comando di esempio specifica l'opzione--nameper fornire un nome per l'esecuzione di questo lavoro.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
Eseguire
ibmcloud ce jobrun get -n myjobrun1per visualizzare i dettagli di questa esecuzione lavoro. Notare che l'immagine di riferimento èicr.io/codeengine/testjob, che si basa sulla configurazione del lavoro aggiornata.Output di esempio
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
Aggiornamento di un lavoro eseguito con CLI
È possibile specificare le modifiche per un lavoro eseguito con il comando ibmcloud ce jobrun resubmit. Il comando jobrun submit inoltra nuovamente un'esecuzione di lavoro che fa riferimento a un'esecuzione di lavoro precedente.
-
Utilizzare il comando
jobrun resubmitper inoltrare nuovamente l'esecuzione del lavoromyjobrun1e modificare gli indici di array da0a1-4. Anche se l'opzione--namenon è richiesta per il comandojobrun resubmit, il seguente comando di esempio specifica l'opzione--nameper fornire un nome per l'esecuzione di questo lavoro.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
Eseguire il comando
ibmcloud ce jobrun get -n myjobrunresubmitper visualizzare i dettagli dell'esecuzione del lavoro aggiornato. Notare che il valore degli indici di array viene aggiornato per questa esecuzione del lavoro.Output di esempio
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
Le esecuzioni lavoro inoltrate (o reinoltrate) con la CLI che non fanno riferimento a una configurazione lavoro definita non sono visualizzabili dalla console.