Utilisation de travaux et d'exécutions de travail
Apprenez à exécuter des travaux dans IBM Cloud® Code Engine. Un job exécute une ou plusieurs instances de votre code exécutable en parallèle. 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, allez sur Code Engine overview.
- 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 existe en tant que source dans un fichier local ou dans un dépôt Git, ou que votre code soit une image de conteneur qui existe dans un registre public ou privé, Code Engine vous offre un moyen rationalisé d'exécuter votre code en tant que tâche.
-
Si vous disposez d'une image de conteneur, conformément à la norme OCI(Open Container Initiative), vous ne devez fournir qu'une référence à l'image, qui pointe vers l'emplacement de votre registre de conteneurs lorsque vous créez votre tâche. Vous pouvez créer votre tâche à partir d'images contenues dans un registre public ou privé, puis accéder à l'image référencée à partir de l'exécution de votre tâche.
-
Si vous commencez avec un code source situé dans un dépôt Git, vous pouvez choisir de pointer vers l'emplacement de votre source, et Code Engine se chargera de construire l'image à partir de votre source et de créer le travail 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 commencez avec un code source sur une station de travail locale, vous pouvez choisir de pointer vers l'emplacement de votre source, et Code Engine se charge de construire l'image à partir de votre source et de créer le travail avec 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 emplois, gardez à l'esprit les éléments clés suivants.
- Contrairement aux images d'application, les images de travail n'ont pas de serveur HTTP.
- Le programme exécutable de l'image doit sortir avec un code de zéro pour être considéré comme réussi.
- 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 travail, vous pouvez spécifier la quantité de mémoire et de CPU que votre travail peut consommer. 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, les secrets et les cartes de configuration peuvent être utilisés par votre travail à l'aide de 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 payez uniquement pour 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.
- Exécution d'un travail.
Pour plus d'informations sur l'utilisation des emplois, voir