Exécution et mise à jour de travaux
Dans le cadre de ce tutoriel, vous allez exécuter un travail par lots à l'aide de la console IBM Cloud® Code Engine.
Une tâche exécute en parallèle une ou plusieurs instances de votre code exécutable. Contrairement aux applications qui gèrent les demandes HTTP, les travaux sont conçus pour s'exécuter une seule fois et prendre fin. Lorsque vous créez un travail, vous pouvez spécifier les informations de configuration de charge de travail qui sont utilisées à chaque fois que le travail est exécuté.
Avant de commencer
Pour plus d'informations sur les travaux par lots, voir Charge de travail des travaux par lots.
Pour utiliser la console « Code Engine », rendez-vous sur la page de présentation de Code Engine.
Tous les utilisateurs Code Engine doivent avoir un compte de paiement à la carte. Les tutoriels peuvent entraîner des coûts. Utilisez l'estimateur de coût pour générer une estimation du coût en fonction de l'utilisation envisagée. Pour plus d'informations, voir Tarification Code Engine.
Création d'un travail
Créez un travail Code Engine à l'aide de l'image icr.io/codeengine/helloworld. Ce travail imprime Hello from helloworld! I'm a task job!.
- Ouvrez la page de présentation Code Engine.
- Sélectionnez « Commencer la création ».
- Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Notez que vous devez disposer d'un projet sélectionné pour créer un travail.
- Sélectionnez Travail.
- Entrez un nom pour le travail et indiquez
icr.io/codeengine/helloworldpour l'image du conteneur. Affectez à votre travail un nom qui est unique dans le projet. Pour cet exemple, vous n'avez pas besoin de modifier les valeurs par défaut des variables d'environnement ou des paramètres d'exécution. Pour plus d'informations sur le code utilisé pour cet exemple, voirhelloworld. - Cliquez sur Créer.
Exécution d'un travail
Après avoir créé votre travail et spécifié vos informations de configuration de charge de travail, vous êtes prêt à exécuter votre travail. Vous pouvez remplacer certaines informations de configuration.
Notez que lorsque vous exécutez votre travail, la dernière version de votre image de conteneur référencée est téléchargée et déployée, sauf si vous avez indiqué une balise pour l'image. Si une balise est spécifiée pour l'image, l'image marquée est utilisée pour le travail.
-
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 exécuter.
-
Dans votre page de travail, cliquez sur Soumettre le travail pour soumettre un travail basé sur la configuration actuelle.
-
Dans le volet « Soumettre la tâche », acceptez toutes les valeurs par défaut, puis cliquez à nouveau sur « Soumettre la tâche » pour lancer votre tâche.
Dans le volet « Soumettre une tâche », vous pouvez vérifier et, si vous le souhaitez, modifier les valeurs de configuration par défaut telles que le nombre d'instances, la puissance de calcul, la mémoire, le nombre de tentatives de réexécution
et le délai d'expiration de la tâche. Vous pouvez spécifier la taille du tableau ou les index du tableau pour les instances de travail parallèle à exécuter. Dans le champ « Taille du tableau », indiquez le nombre d'instances à exécuter en parallèle pour cette tâche. Pour les index de tableau, indiquez une liste séparée par des virgules correspondant à votre ensemble personnalisé d'index. Par exemple, pour exécuter
ce job avec un ensemble personnalisé d'index « 5 », spécifiez « 3,12-14,25 ». Vous pouvez également spécifier une valeur personnalisée pour la taille du tableau de travaux,
qui met à jour la valeur de la variable d'environnement JOB_ARRAY_SIZE injectée automatiquement. Après soumission d'un travail, le système affiche le statut des instances de ce travail sur la page des détails du travail. Si vous
indiquez la taille du tableau plutôt que ses index dans le volet « Soumettre le travail », dans la section « Configuration » de la page « Détails du travail », ces informations sont fournies sous
forme d'index du tableau.
Accès aux détails d'un travail
Recherchez les détails relatifs à votre travail.
Une fois que vous avez soumis votre travail, les résultats de l'exécution de travail spécifique sont disponibles dans la console à partir de la page des détails de l'exécution de travail. A partir de la console, vous pouvez également afficher les détails de votre travail et des exécutions de travail spécifiques à partir de la page Travaux.
- Pour afficher les détails d'un travail, cliquez sur l'onglet Travaux, puis sur le nom du travail à utiliser.
- Pour afficher les détails d'une exécution de travail spécifique, cliquez sur l'onglet Exécution de travail, puis sur le nom de l'exécution de travail à utiliser.
Si l'une des instances de votre tâche n'a pas pu s'exécuter, vous pouvez prendre les mesures suivantes :
- Cliquez sur « Réexécuter les index ayant échoué » pour relancer la tâche concernant les index qui ont échoué. Dans le volet « Soumettre une tâche », vérifiez et, si nécessaire, modifiez les valeurs de configuration, y compris les index de tableau. La section « Index du tableau » répertorie automatiquement les index des instances d'exécution de tâches ayant échoué.
Pour dépanner les erreurs courantes des index d'exécution de travaux, voir Comprendre pourquoi les index d'exécution de travaux peuvent échouer.
- Cliquez sur « Soumettre la tâche » pour soumettre la tâche concernant les index ayant échoué.
Vous pouvez afficher les journaux de travail après avoir ajouté des fonctions de journalisation. Pour plus d'informations, voir Affichage des journaux de travail à partir de la console.
Mise à jour d'un travail
Vous pouvez gérer votre tâche en ajustant sa configuration, notamment en mettant à jour le code, l'image du conteneur, les arguments ou commandes du code, les ressources de l'instance d'exécution ou les variables d'environnement.
Lorsque le travail est prêt, vous pouvez le mettre à jour. Mettons à jour le travail que vous avez créé précédemment pour modifier les messages d'accueil et les variables d'environnement en mettant à jour une variable d'environnement. Lorsqu'une
requête est envoyée au job d'exemple « 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.
-
Sur le panneau Soumettre un travail, examinez et le cas échéant modifiez les valeurs de configuration par défaut (Instances, UC, Mémoire, Nombre de nouvelles tentatives de travail et Délai d'attente du travail). Vous pouvez spécifier la taille du tableau ou les index du tableau pour les instances de travail parallèle à exécuter. Dans le champ « Taille du tableau », indiquez le nombre d'instances à exécuter en parallèle pour cette tâche. Pour les index de tableau, indiquez une liste séparée par des virgules correspondant à votre ensemble personnalisé d'index. Par exemple, pour exécuter ce job avec un ensemble personnalisé d'index «
5», spécifiez «3,12-14,25». Cliquez à nouveau sur Soumettre un travail pour exécuter votre travail. Le système affiche le statut des instances de votre travail sur la page des détails du travail. -
En consultant les journaux de la console relatifs à cette tâche, on constate que le résultat de celle-ci est
Hello Sunshine!.
Etapes suivantes
-
Après avoir créé votre travail, soumettez le travail pour l'exécuter. Voir Exécution d'un travail. Vous pouvez exécuter votre travail plusieurs fois.
-
Après avoir exécuter votre travail, pour afficher les détails de votre travail et de vos exécutions de travail, voir Accès aux détails du travail.
-
Maintenant que votre travail est créé, envisagez de faire vos travaux en fonctions des événements. En utilisant des abonnements à des événements, vous pouvez déclencher vos travaux par des calendriers périodiques ou configurer votre travail pour qu'il réagisse à des événements comme des téléchargements de fichiers.
-
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.
-
Vous recherchez d'autres exemples de code ? Consultez le répertoire Samples for IBM Cloud Code Engine GitHub.