Génération d'applications stockant des informations dans IBM Cloudant
Apprenez à générer votre application Code Engine à partir du code source stocké sur votre poste de travail local. Ce tutoriel utilise un exemple de source utilisé pour générer l'application. Cette application se connecte à une base de données IBM Cloudant et stocke les entrées de cette application.
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 et de Cloud Native Buildpacks.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Git
- Node.js et npm
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éer une instance de service et une base de données IBM Cloudant
La première étape consiste à créer une instance de service IBM Cloudant, puis à créer une base de données. Vous pouvez en créer un à partir de la console ou à l'aide des commandes de l'interface de ligne de commande. En outre, créez des données d'identification de service que vous pouvez transmettre à votre application.
- Créez une instance de service IBM Cloudant en suivant les étapes de la rubrique Initiation à IBM Cloudant. Nommez votre instance
CloudantFruitCounter. Veillez à effectuer la tâche en créant vos données d'identification de service. - Ouvrez le tableau de bord IBM Cloudant de votre instance et cliquez sur Créer une base de données.
- Dans la fenêtre Créer une base de données, entrez le nom de la base de données
fruitcounter. - Ne sélectionnez pas l'option Partitionné et cliquez sur Créer.
Testez votre application en local
Avant de créer votre code en tant qu'application dans Code Engine, testez votre code en local pour vous assurer qu'il fonctionne correctement.
-
Extrayez les données d'identification du service IBM Cloudant à partir du tableau de bord IBM Cloudant. Pour plus d'informations sur l'extraction des données d'identification, voir Création de données d'identification de service.
-
Définissez les variables d'environnement avec les valeurs des données d'identification du service.
export CLOUDANT_URL=<your_url>export CLOUDANT_APIKEY=<your_key>export DBNAME="fruitcounter" -
Clonez le référentiel
fruit-counter, accédez à ce répertoire, puis installez et démarrez les dépendances.git clone https://github.com/IBM/CodeEngine cd CodeEngine/fruit-counter npm install npm run start -
Ouvrez un navigateur et accédez à
http://localhost:8080. -
Choisissez votre fruit préféré et soumettez votre choix. L'application accepte votre choix et affiche un total cumulatif de sélections.
Vous pouvez vérifier que votre choix de fruit a été enregistré dans Cloudant en accédant à votre tableau de bord de base de données IBM Cloudant.
Voyons comment ce programme fonctionne.
Cette application est une application Node.js simple qui utilise deux packages principaux.
@ibm-cloud/cloudantpour la connexion à IBM Cloudant et pour la lecture et l'écriture de données.- Express pour créer un serveur Web qui permet aux utilisateurs de soumettre leur choix de fruits et de voir un total cumulatif de nos données.
Cette application est composée de deux fichiers principaux.
- server.js
- Le fichier
server.jsest utilisé pour exécuter le serveur Web et communique avec Cloudant. Une fois qu'un utilisateur a sélectionné un choix de fruit, la page de garde soumet la valeur à la route/fruit(voir ci-dessous), la fonctionapp.routestocke un nouveau document dans Cloudant avec le choix de fruit, puis lit le total cumulatif pour revenir à la page de garde. - L'opération de lecture utilise un document de conception Cloudant et une vue
MapReducepour agréger les documents. Pour plus d'informations sur les vues et les documents de conception, voir Création de vues(MapReduce). - index.html
- Le fichier
index.htmlest la page Web de l'application qui utilise l'infrastructureVue.js. Lorsque cette page est chargée, elle affiche les options de fruits disponibles. - Une fois que vous avez soumis votre choix, l'infrastructure effectue une demande HTTP POST avec votre sélection de fruits sur la route
/fruitde l'application. Le retour de l'application contient le total cumulatif des choix de fruits, qui est ensuite affiché.
Déploiement de votre application dans Code Engine
Maintenant que vous comprenez le fonctionnement de cette application, vous pouvez la déployer dans Code Engine. Vous pouvez suivre les étapes de déploiement d'une application à partir d'un référentiel public,
en spécifiant CODEENGINEREPO comme référentiel d'images. Veillez à inclure les variables d'environnement que vous avez collectées et définies localement à l'étape 2.
Etant donné que vous avez cloné le référentiel lorsque vous avez testé votre application en local, vous pouvez utiliser la commande app create pour générer une image à partir de
votre source locale et déployer votre application qui fait référence à cette image générée.
-
Exécutez la commande app create. Vous devez fournir un nom pour votre application et l'emplacement du code source. L'exemple suivant crée une application appelée
myfruitcounterqui utilise la stratégiedockeret fournit l'emplacement du code source dans le répertoire en cours (.). Vous devez également définir les variables d'environnement pour la connexion à Cloudant.ibmcloud ce app create --name myfruitcounter --build-source . --strategy dockerfile --env CLOUDANT_URL=<your_url> --env CLOUDANT_APIKEY=<your_key> --env DBNAME=fruitcounterExemple de sortie
Creating application 'myfruitcounter'... Packaging files to upload from source path '.'... Submitting build run 'myfruitcounter-run-220727-142949868'... Creating image 'private.us.icr.io/ce--6ef04-n2lgvg2l59v/app-myfruitcounter:220727-1929-y8ej0'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myfruitcounter-run-220727-142949868' to check the build run status. Waiting for application 'myfruitcounter' to become ready. Configuration 'myfruitcounter' is waiting for a Revision to become ready. Ingress has not yet been reconciled. Waiting for load balancer to be ready. Run 'ibmcloud ce application get -n myfruitcounter' to check the application status. OK https://myfruitcounter.n2lfrg2876v.us-south.codeengine.appdomain.cloud -
Testez l'application en ouvrant l'URL fournie pour l'application de sélecteur de fruits. Choisissez votre fruit préféré et soumettez-le. Le total cumulatif des choix de fruits est affiché. Vous pouvez actualiser l'application et choisir un autre fruit. L'ajout est affiché dans le total cumulatif.