Mise à jour d'un travail
Vous pouvez modifier un travail défini et exécuter le travail mis à jour à partir de la console ou de l'interface de ligne de commande. Les modifications apportées à votre travail peuvent inclure la mise à jour de l'image du conteneur de code, des arguments ou des commandes de code, des ressources d'instance d'exécution ou des variables d'environnement.
À chaque exécution de votre travail, la dernière version de votre image de conteneur référencée est utilisée pour l'exécution du travail, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image référencée est utilisée pour l'exécution du travail.
Les travaux par lots soumis sont exécutés en parallèle, si possible. Si le nombre ou la taille des travaux soumis dépasse les limites de quota configurées, telles que le nombre d'instance en cours, Code Engine place les travaux en file d'attente et retarde leur exécution jusqu'à ce qu'un nombre suffisant d'entre eux se terminent. Pour plus d'informations sur les quotas et les limites relatifs aux travaux, y compris la mémoire et l'unité centrale, voir Limites et quotas pour Code Engine.
Vous pouvez mettre à jour votre travail et son code référencé avec n'importe quelle manières suivantes, indépendamment de la façon dont vous avez créé ou mis à jour votre travail.
-
Si vous disposez d'une image de conteneur conforme à la norme Open Container Initiative(OCI), il vous suffit de fournir une référence à cette image, qui pointe vers l'emplacement de votre registre de conteneurs, lorsque vous créez (ou mettez à jour) votre tâche. Vous pouvez créer (ou mettre à jour) votre tâche à partir d'images issues d'un registre public ou privé, puis accéder à l'image référencée depuis l'exécution de votre tâche.
Si vous avez créé votre travail à l'aide de la commande
job createet que vous avez spécifié l'option--build-sourcepour générer l'image de conteneur à partir de la source locale ou du référentiel, et que vous souhaitez modifier votre travail pour qu'il pointe vers une autre image de conteneur, vous devez d'abord supprimer l'association de la génération de votre travail. Par exemple, exécutezibmcloud ce job update -n JOB_NAME --build-clear. Après avoir supprimé l'association de la génération de votre travail, vous pouvez mettre à jour le travail pour référencer une image différente. -
Si vous démarrez avec le code source qui réside dans un référentiel Git, vous pouvez choisir de laisser Code Engine prendre soin de générer l'image à partir de votre source et de créer (ou de mettre à jour) le travail avec une opération unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Création d'un travail à partir du code source du référentiel. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de générer l'image avec Code Engine avant de créer (ou mettre à jour) votre travail et d'exécuter le travail.
-
Si vous démarrez avec le code source résidant sur un poste de travail local, vous pouvez choisir de laisser Code Engine prendre soin de créer l'image à partir de votre source et de créer le travail avec une commande CLI unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Création de votre travail à partir du code source local avec l'interface de ligne de commande. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de générer l'image avec Code Engine avant de créer (ou mettre à jour) votre travail et d'exécuter le travail.
Par exemple, vous pouvez choisir de laisser Code Engine gérer la génération de votre source locale pendant que vous faites évoluer le développement de votre source pour le travail. Ensuite, après la maturation de l'image, vous pouvez mettre à jour le travail pour référencer l'image spécifique de votre choix. Vous pouvez répéter ce processus si nécessaire.
Lorsque vous exécutez votre travail mis à jour, la dernière version de votre image de conteneur référencée est utilisée pour l'exécution du travail, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image référencée est utilisée pour l'exécution du travail.
Mise à jour d'un travail à partir de la console
Lorsqu'un travail est à l'état prêt, vous pouvez mettre à jour le travail. Mettons à jour le job myjob que vous avez créé précédemment afin de modifier les messages d'accueil et les variables d'environnement en mettant à jour une
variable d'environnement. Lorsqu'une requête est envoyée à cet exemple de job « icr.io/codeengine/helloworld », celui-ci lit la variable d'environnement « TARGET » et affiche « "Hello ${TARGET}!" ». Si cette variable d'environnement est vide, "Hello World!" est renvoyé. Pour plus d'informations sur le code utilisé dans cet exemple, voir helloworld.
-
Accédez à la page de votre travail.
- Sur la page « Projets » d' Code Engine, cliquez sur le nom de votre projet.
- Cliquez sur « Tâches », puis sur l'onglet « Tâches ».
- Cliquez sur le nom de la tâche que vous souhaitez mettre à jour.
-
Dans l'onglet Configuration > Variables d'environnement, cliquez sur Ajouter une variable d'environnement. Ajoutez une variable d'environnement littérale nommée
TARGETet ayant la valeurSunshine. Leicr.io/codeengine/helloworldgénère le messageHello <value_of_TARGET>!>. -
Cliquez sur « Ajouter » pour ajouter votre variable d'environnement.
-
Cliquez sur Déployer.
-
Cliquez sur Soumettre un travail.
-
Depuis le panneau Soumettre un travail, remplacez cette fois la valeur d'UC par l'un des choix d'UC valides pour la mémoire spécifiée. Vous devez utiliser les combinaisons de mémoire et d'UC valides. Cliquez à nouveau sur Soumettre un travail pour exécuter ce travail. Le système affiche le statut de votre travail sur la page des détails du travail. Notez la valeur d'UC mise à jour dans la section
Configurationdes détails du travail. -
Si vous affichez les journaux de ce travail à partir de la console, la sortie du travail mis à jour est
Hello Sunshine!.
Mise à jour d'un travail via l'interface de ligne de commande
A l'aide de l'interface de ligne de commande, vous pouvez mettre à jour une configuration de travail existante ou spécifier vos modifications sur une nouvelle exécution de travail.
Mise à jour d'une configuration de travail via l'interface de ligne de commande
Vous pouvez mettre à jour une configuration de travail existante à l'aide de la commande ibmcloud ce job update.
-
Utilisez la commande
job updatepour mettre à jour le travailmyjobafin de référencer une autre image.ibmcloud ce job update --name myjob --image icr.io/codeengine/testjobExécutez la commande
ibmcloud ce job get -n myjobpour afficher les détails du travail mis à jour.Exemple de sortie
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 [...] -
Exécutez la commande
ibmcloud ce jobrun submitpour exécuter un travail qui fait référence à cette configuration de travail mise à jour. Pour la commandejobrun submit, utilisez l'option--jobpour référencer une configuration de travail définie. Alors que l'option--namen'est pas obligatoire si l'option--jobest spécifiée, l'exemple de commande suivant spécifie l'option--namepour fournir un nom pour cette exécution de travail.ibmcloud ce jobrun submit --name myjobrun1 --job myjob -
Exécutez la commande
ibmcloud ce jobrun get -n myjobrun1pour afficher les détails de cette exécution de travail. Notez que l'image référencée esticr.io/codeengine/testjob, qui est basée sur la configuration de travail mise à jour.Exemple de sortie
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
Mise à jour d'une exécution de travail via l'interface de ligne de commande
Vous pouvez spécifier des modifications pour une exécution de travail avec la commande ibmcloud ce jobrun resubmit. La commande jobrun submit soumet à nouveau une exécution de travail qui référence une exécution de travail précédente.
-
Utilisez la commande
jobrun resubmitpour soumettre à nouveau l'exécution du travailmyjobrun1et modifier les index de tableau de0en1-4. Alors que l'option--namen'est pas obligatoire pour la commandejobrun resubmit, l'exemple de commande suivant spécifie l'option--namepour fournir un nom pour cette exécution de travail.ibmcloud ce jobrun resubmit -jobrun myjobrun1 --array-indices "1-4" --name myjobrunresubmit -
Exécutez la commande
ibmcloud ce jobrun get -n myjobrunresubmitpour afficher les détails de l'exécution de travail mise à jour. Notez que la valeur des index de tableau est mise à jour pour cette exécution de travail.Exemple de sortie
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
Les exécutions de travail soumises (ou soumises à nouveau) via l'interface de ligne de commande qui ne font pas référence à une configuration de travail définie ne sont pas visibles à partir de la console.