Utilisation de travaux et d'exécutions de travail
Apprenez à exécuter des travaux dans 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
- Comprendre les concepts des charges de travail par lots dans Code Engine Pour plus d'informations sur les travaux par lots, voir Charge de travail des travaux par lots.
- Planiez et choisissez votre approche pour faire fonctionner votre code en tant que composant de travail Code Engine. Pour plus d'informations sur les types de charge de travail Code Engine à créer, voir Planification pour Code Engine.
- Vous pouvez utiliser les travaux et les cycles de travail de deux manières :
- Si vous souhaitez utiliser la console « Code Engine », rendez-vous sur la page de présentation de « Code Engine ».
- Si vous souhaitez utiliser l'interface de ligne de commande, configurez votre environnement d'interface de ligne de commande Code Engine.
Code Engine fournit des méthodes de définition de ressource personnalisée (CRD). Pour plus d'informations, voir les méthodes de CRD par lot.
Comment puis-je faire fonctionner mon code en tant que composant de travail Code Engine ?
Que votre code se présente sous forme de code source dans un fichier local ou dans un référentiel Git, ou qu'il s'agisse d'une image de conteneur hébergée dans un registre public ou privé, Code Engine vous offre un moyen simple d'exécuter votre code en tant que tâche.
-
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, lors de la création de votre tâche. Vous pouvez créer 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 partez d'un code source hébergé dans un dépôt Git, vous pouvez indiquer l'emplacement de ce code; Code Engine se chargera alors de compiler l'image à partir de votre code source et de créer la tâche en une seule opération. 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 créer l'image avec Code Engine avant de créer votre travail et d'exécuter le travail.
-
Si vous partez d'un code source sur un poste de travail local, vous pouvez indiquer l'emplacement de ce code; Code Engine se charge alors de compiler l'image à partir de votre code source et de créer la tâche à l'aide d'une seule commande CLI. 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 créer l'image avec Code Engine avant de créer votre travail et d'exécuter le travail.
Une fois que vous avez créé et exécuté votre travail, vous pouvez également mettre à jour votre travail à l'aide de n'importe quelle méthode précédente, indépendamment de la façon dont vous avez créé ou mis à jour votre travail.
Lorsque vous travaillez avec des tâches, gardez à l'esprit les points clés suivants.
- Contrairement aux images d'application, les images de travail n'ont pas de serveur HTTP.
- Pour que le programme exécutable représenté sur l'image soit considéré comme ayant abouti, il doit se terminer avec un code de sortie égal à zéro.
- Votre image peut être téléchargée à partir d'un registre d'images public ou privé. Pour plus d'informations, voir Accès aux registres de conteneurs.
Lorsque vous exécutez 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.
Considérations relatives à la gestion HTTP
Lorsque vous travaillez avec des travaux (ou des applications), il est utile de connaître la gestion HTTP de base dans Code Engine. Voir Considérations relatives à la gestion HTTP
Options de création et d'exécution d'un travail
Découvrez les options que vous pouvez spécifier lors de la création ou de l'exécution de votre travail. Notez que les options peuvent varier entre la console et l'interface de ligne de commande.
Mémoire et unité centrale destinées aux travaux
Lorsque vous déployez votre tâche, vous pouvez définir la quantité de mémoire et de ressources CPU que celle-ci peut utiliser. Ces quantités peuvent varier selon que votre travail génère de nombreux calculs, nécessite beaucoup de mémoire ou est équilibré.
Par défaut, 4 Go de mémoire et à 1 UC virtuelle (vCPU) sont affectés à votre travail. Pour plus d'informations sur la sélection de la mémoire et de l'unité centrale, voir Combinaisons de mémoire et d'unité centrale prises en charge.
Création et exécution d'un travail avec des commandes et des arguments
Vous pouvez définir des commandes et des arguments pour votre travail à utiliser lors de l'exécution lorsque vous créez ou exécutez votre travail.
Vous pouvez ajouter des commandes et des arguments à votre travail à l'aide de l'interface de ligne de commande ou de la console.
Pour ajouter des commandes et des arguments via la console, utilisez les zones Command et Arguments.
Pour ajouter des commandes et des arguments à l'aide de l'interface de ligne de commande, ajoutez les options --cmd et --args à votre commande job create ou jobrun submit.
Pour plus d'informations sur la définition des commandes et des arguments, voir Définition de commandes et d'arguments pour vos charges de travail Code Engine.
Création et exécution d'un travail avec des variables d'environnement
Vous pouvez définir des variables d'environnement en tant que paires clé-valeur pouvant être utilisées par votre travail lors de l'exécution.
Vous pouvez définir des variables d'environnement lorsque vous créez votre travail ou lorsque vous mettez à jour un travail existant à partir de la console ou via l'interface de ligne de commande. Vous pouvez créer des variables d'environnement qui référencent intégralement une mappe de configuration (ou un secret) ou référencent des clés individuelles dans une mappe de configuration (ou un secret).
Pour plus d'informations sur la définition de variables d'environnement, voir Utilisation de variables d'environnement.
Création et exécution d'un travail avec des secrets et des mappes de configuration
Dans Code Engine, votre job peut utiliser des secrets et des configmaps via des variables d'environnement.
Les secrets et les mappes de configuration sont des paires clé-valeur. Lorsqu'elles sont mappées à des variables d'environnement, les relations NAME=VALUE sont définies de telle sorte que le nom de la variable d'environnement
correspond à la "clé" de chaque entrée de ces mappes, et la valeur de la variable d'environnement est la "valeur" de cette clé.
Votre travail peut utiliser des variables d'environnement pour référencer intégralement une mappe de configuration (ou un secret) ou référencer des clés individuelles dans une mappe de configuration (ou un secret).
Pour plus d'informations, voir Référencement de secrets à l'aide de variables d'environnement et Référencement de mappes de configuration à l'aide de variables d'environnement.
Que se passe-t-il si je veux que mon travail s'exécute indéfiniment?
En règle générale, les travaux sont conçus pour s'exécuter une seule fois et se fermer avec un temps d'exécution maximal.
Toutefois, supposons que vous souhaitiez interroger en permanence un magasin de données tiers. Vous pouvez choisir de créer une application ; toutefois, le port de l'application doit rester ouvert pour traiter les demandes HTTP. A la place, si vous ne souhaitez pas traiter les demandes HTTP, vous pouvez choisir de créer un travail qui s'exécute sans délai d'exécution maximal et qui ne dépasse pas le délai d'attente.
Avec Code Engine, vous pouvez choisir le mode de votre travail. Pour les travaux pour lesquels une durée d'exécution maximale s'applique, utilisez le mode task pour vos travaux. Les instances ayant échoué sont redémarrées
en fonction du nombre maximal de nouvelles tentatives de travail. Ce mode est le comportement par défaut pour les travaux.
Si vous souhaitez créer un travail qui peut s'exécuter indéfiniment et qui n'a pas de délai d'attente, utilisez le mode daemon pour vos travaux. Les instances ayant échoué sont automatiquement redémarrées indéfiniment.
Avec « Code Engine », vous ne payez que les ressources que vous utilisez. Lorsque votre travail s'exécute en mode daemon, sachez que le travail est toujours en cours d'exécution jusqu'à ce que vous le supprimiez.
Pour plus d'informations, voir Création et exécution d'un travail qui s'exécute indéfiniment.
Remarques sur les quotas de travail
Lorsque vous utilisez des applications, des fonctions et des travaux par lots, ces ressources s'exécutent dans le contexte d'un projet Code Engine. Les quotas de ressources sont définis par projet et des limites s'appliquent aux applications, aux fonctions et aux travaux par lots.
Pour plus d'informations sur les limites dans Code Engine, voir Limites et quotas pour Code Engine.
Nettoyage des travaux terminés
Les travaux terminés sont automatiquement supprimés au bout d'une semaine.
Etapes suivantes
Maintenant que vous connaissez les concepts clés de l'utilisation des travaux Code Engine, êtes-vous prêt à créer et à exécuter des travaux? Consultez
- Création d'un travail à partir d'images dans un registre public.
- Création d'un travail à partir d'images dans IBM Cloud Container Registry.
- Création d'un travail à partir d'images dans un registre privé.
- Création d'un travail à partir du code source du référentiel.
- Création d'un travail à partir du code source local via l'interface de ligne de commande.
- Exécution d'un travail.
Pour plus d'informations sur l'utilisation des tâches, consultez