Initiation à IBM Cloud Code Engine
IBM Cloud® Code Engine est une plateforme entièrement gérée et sans serveur qui exécute vos charges de travail conteneurisées, y compris les applications Web, les micro-services, les fonctions pilotés par évènement ou les travaux par lots. Code Engine génère même des images de conteneur pour vous à partir de votre code source. Toutes ces charges de travail peuvent fonctionner ensemble car elles sont toutes hébergées dans la même infrastructure de Kubernetes. L'expérience Code Engine est conçue pour vous permettre de vous concentrer sur l'écriture de code et non sur l'infrastructure qui doit l'héberger.
Tout d'abord, apprenez-en plus sur lesTermes clés pourCode Engine, puis commencez en choisissant l'une des options suivantes.
- Déployez une application
- Créez et exécutez un travail
- Exécuter le code de fonction
- Génération de votre première image de conteneur à partir du code source
- Gérer une flotte
Que sont les projets, les applications, les emplois, les fonctions et les flottes de Code Engine?
Avant de commencer, vous devez vous familiariser avec certains termes clés concernant Code Engine.
| Terme | Description |
|---|---|
| Projet | Un projet est un regroupement d'entités Code Engine telles que des applications, des travaux et des générations. Les projets permettent de gérer des ressources et fournissent un accès à leurs entités. |
| Application | Une application exécute votre code pour servir les demandes HTTP. Une application comporte une URL pour les demandes entrantes. Le nombre d'instances en cours d'exécution d'une application est automatiquement augmenté ou réduit (jusqu'à zéro) en fonction de la charge de travail entrante. |
| Générer | Une génération, ou génération d'image, est un mécanisme que vous pouvez utiliser pour créer une image de conteneur à partir de votre code source. Code Engine prend en charge la génération à partir d'un Dockerfile ou de Cloud Native Buildpacks. |
| Fonction | Une fonction est un extrait de code sans état qui exécute des tâches en réponse à une demande HTTP. |
| Travail | Un job exécute une ou plusieurs instances de votre code exécutable en parallèle. Contrairement aux applications, qui incluent un serveur HTTP pour traiter les demandes entrantes, les travaux sont conçus pour s'exécuter une seule fois et prendre fin. |
| La flotte | Une flotte, également appelée flotte sans serveur, exécute une ou plusieurs instances de code utilisateur pour réaliser une série de tâches spécifiées. Les flottes sont conçues pour faire face à des charges de travail importantes et lourdes en termes d'informatique. Contrairement aux emplois, les parcs sont à locataire unique, mettent en place une file d'attente dynamique pour les tâches et offrent un contrôle total sur la configuration du profil de la machine. Pour plus d'informations, voir Quelle est la différence entre les emplois et les flottes? |
Pour plus d'informations sur les termes, voir Terminologie Code Engine.
Vous ne savez pas quoi choisir? Voir Planification pour Code Engine.
Comment les applications, les emplois, les fonctions et les flottes se comparent-ils?
| Caractéristique | Application | Travail | Fonction | La flotte |
|---|---|---|---|---|
| Temps d'exécution (durée) | Longue durée (10 minutes par demande) | Longue durée (jusqu'à 24 heures) | Courte durée (2 minutes ou moins) | Longue durée (de quelques minutes à quelques semaines) |
| Temps de latence au démarrage | Moyen | Début programmé | Faible | Faible |
| Résiliation | Exécution continue | De l'exécution à l'achèvement | De l'exécution à l'achèvement | De l'exécution à l'achèvement |
| Appel | Sur demande ou en permanence | Planifiée | Sur demande, instantané | Planifiée |
| Modèle de programmation | Construction et exécution basées sur des conteneurs | Construction et exécution basées sur des conteneurs | Fichiers de code source spécifiques à la langue et métadonnées de dépendance | Construction et exécution basées sur des conteneurs |
| Parallélisme | Exécution parallèle, flexibilité | Exécution parallèle faible à moyenne | Exécution parallèle élevée | Exécution en parallèle et mise en file d'attente |
| Extension | En fonction du nombre de demandes | Sur la base de la définition de la charge de travail | Sur la base d'événements ou d'invocations directes | En fonction du nombre de tâches et d'instances simultanées |
| Optimisé pour | Charge de travail longue durée et très complexe et extension à la demande | Charges de travail programmées ou planifiées avec des exigences élevées en matière de ressources | Temps de démarrage et mise à l'échelle rapide | Charges de travail importantes, à forte intensité de calcul |
Pour plus d'informations, voir Planning for Code Engine.
Déployer votre première application Code Engine
Créez votre première application Code Engine à l'aide de l'image icr.io/codeengine/helloworld.
- Ouvrez la Code Engine console.
- Sélectionnez Commencer à créer.
- 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 déployer une application.
- Sélectionnez Application.
- Saisissez un nom pour l'application, par exemple
myapp. Affectez à votre application un nom qui est unique dans le projet. - Sélectionnez cette option pour exécuter uneImage du conteneur et indiquez
icr.io/codeengine/helloworldpour la référence d'image. Pour cet exemple, il n'est pas nécessaire de modifier les valeurs par défaut. Pour plus d'informations sur le code utilisé dans cet exemple, voirhelloworld. - Cliquez sur Créer.
- Lorsque l'application prend le statut Prêt, vous pouvez la tester. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.
Exemple de sortie
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables
Vous avez déployé votre première application sur Code Engine et vous l'avez testée. Consultez le didacticiel : Déployer des applications ou Travailler avec des applications sur Code Engine pour tester d'autres options pour les applications.
Exécution de votre premier travail Code Engine
Créez et exécutez votre premier travail Code Engine à l'aide de l'image icr.io/codeengine/helloworld.
- Ouvrez la Code Engine console.
- Sélectionnez Commencer à créer.
- 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.
- Saisissez un nom pour le travail, par exemple
myjob. Affectez à votre travail un nom qui est unique dans le projet. - Indiquez
icr.io/codeengine/helloworldpour la référence d'image. Pour cet exemple, il n'est pas nécessaire de modifier les valeurs par défaut. Pour plus d'informations sur le code utilisé dans cet exemple, voirhelloworld. - Cliquez sur Créer.
- Dans votre page de travail, cliquez sur Soumettre le travail pour soumettre un travail basé sur la configuration actuelle.
- Dans la sous-fenêtre de soumission du travail, acceptez toutes les valeurs par défaut et cliquez à nouveau sur Soumettre le travail pour exécuter votre travail.
Lorsque la journalisation est activée, l'exemple suivant est affiché dans les journaux. Pour obtenir des informations sur l'exécution de travaux avec la journalisation activée, voir Affichage des journaux.
Exemple de sortie de l'instance de journalisation
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables
Vous avez créé et exécuté votre travail à partir de la console. Accédez à la rubrique Tutoriel : Exécution de travaux ou Exécution de travaux dans Code Engine pour essayer d'autres options pour les travaux.
Exécution de la première fonction
Créez et exécutez votre première fonction Code Engine à l'aide d'un exemple de code de fonction.
- Ouvrez la Code Engine console.
- Sélectionnez Commencer à créer.
- Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Notez que vous devez avoir un projet sélectionné pour créer une fonction.
- Sélectionner la fonction.
- Saisissez un nom pour la fonction. Utilisez un nom pour votre fonction qui soit unique au sein du projet.
- Sélectionnez Node.js 20
- Cliquez sur Créer. Votre fonction est créée à l'aide d'un exemple de code. Vous pouvez modifier ce code sur la page Fonction -> Configuration.
- Cliquez sur Fonction de test, puis sur Envoyer une demande dans le volet Fonction de test. Pour ouvrir la fonction dans une page web, cliquez sur Fonction URL.
Exemple de sortie
{
"args": {
"__ce_headers": {
"Accept-Encoding": "gzip, deflate, br",
"User-Agent": "got (https://github.com/sindresorhus/got)",
"X-Request-Id": "12340a7b-11c0-4de3-f16b-a6abc27f4146"
},
"__ce_method": "GET",
"__ce_path": "/"
},
"env": {
"HOME": "/root",
"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin",
"PWD": "/nodejsAction",
"SHLVL": "1",
"_": "/usr/local/lib/nodejs/bin/node",
"__OW_ALLOW_CONCURRENT": "true",
"container": "oci"
}
}
Vous avez déployé votre première fonction sur Code Engine et l'avez testée. Consultez les sections Exécuter une fonction à partir d'une source locale ou Travailler avec des fonctions pour essayer d'autres options pour les fonctions.
Vous pouvez migrer votre site IBM Cloud Functions vers Code Engine.
Gestion de votre première flotte
Créez et exécutez votre première flotte Code Engine en utilisant l'image icr.io/codeengine/helloworld.
- Assurez-vous d'avoir suivi les étapes de préparation nécessaires à la gestion d'une flotte.
- Ouvrez la Code Engine console.
- Sélectionnez Commencer à créer.
- Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Notez que vous devez avoir un projet sélectionné pour lancer une flotte.
- Sélectionner la flotte.
- Saisissez un nom pour la flotte. Utilisez un nom unique pour toutes les flottes du projet.
- Indiquez
icr.io/codeengine/helloworldpour la référence d'image. Pour cet exemple, il n'est pas nécessaire de modifier les valeurs par défaut. Pour plus d'informations sur le code utilisé dans cet exemple, voirhelloworld. - Cliquez sur Créer.
Lorsque la journalisation est activée, l'exemple suivant est affiché dans les journaux. Pour en savoir plus sur le fonctionnement des flottes avec la journalisation activée, voir Affichage des journaux des flottes.
Exemple de sortie de l'instance de journalisation
Hello from helloworld! I'm a task of fleet: fleet-abcdef1234! Task Index: 4, Task ID: 2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f
Hello World from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.eu-de.codeengine.cloud.ibm.com
CE_CPU=1
CE_DOMAIN=eu-de.codeengine.appdomain.cloud
CE_FLEET_ID=1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e
CE_FLEET_NAME=fleet-abcdef1234
...
z=Set env var 'SHOW' to see all variables
Vous avez créé et géré votre flotte à partir de la console. Consultez la rubrique Gestion d'une flotte pour essayer d'autres options pour les flottes.
Génération de votre première image de conteneur à partir du code source
Créez votre première génération Code Engine et exécutez-la, puis déployez l'image de conteneur dans une application.
Code Engine peut automatiquement envoyer des images vers un espace de nom Container Registry dans votre compte. Il peut même créer un espace de nom pour vous. Pour insérer des images dans un autre compte Container Registry ou dans un compte du privé Docker Hub, voir Ajout d'un accès à un registre de conteneur privé.
- Ouvrez la Code Engine console.
- Sélectionnez Commencer à créer.
- 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 déployer une application.
- Sélectionnez Application.
- Entrez un nom pour l'application. Affectez à votre application un nom qui est unique dans le projet.
- Sélectionnez cette option pour exécuter uneImage du conteneur et indiquez
icr.io/codeengine/helloworldpour la référence d'image. Pour cet exemple, il n'est pas nécessaire de modifier les valeurs par défaut. Pour plus d'informations sur le code utilisé dans cet exemple, voirhelloworld. - Sélectionnez Code source.
- Cliquez sur Spécifier les détails de génération.
- Acceptez les valeurs par défaut pour chaque page, en cliquant sur Suivant, puis sur Terminé.
- Cliquez sur Créer.
Une fois votre exécution de génération soumise, l'image de conteneur générée est envoyée à Container Registry pour être ensuite extraite par l'application et déployée pour vous. Lorsque l'application prend le statut Prêt, vous pouvez l'essayer. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.
Exemple de sortie
Hello World from:
___ __ ____ ____
/ __)/ \( \( __)
( (__( O )) D ( ) _)
\___)\__/(____/(____)
____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
Vous avez soumis un code source à Code Engine et créé une image de conteneur que vous avez ensuite déployée dans une application, le tout à partir d'une seule et unique interface.
Accédez à la rubrique Génération d'une image de conteneur pour explorer et essayer d'autres options pour les générations.
Etapes suivantes pour Code Engine
En savoir plus sur l'exécution de ces tâches Code Engine à partir de la console ou à l'aide de l'interface de ligne de commande Code Engine.
- Gestion des projets
- Déploiement d'applications
- Exécution de travaux
- Fonctions d'exécution
- Génération d'images de conteneur
Vous recherchez d'autres exemples de code ? Consultez le répertoire Samples for IBM Cloud Code Engine GitHub.