IBM Cloud Docs
Génération d'applications stockant des informations dans IBM Cloudant

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

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.

  1. 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.
  2. Ouvrez le tableau de bord IBM Cloudant de votre instance et cliquez sur Créer une base de données.
  3. Dans la fenêtre Créer une base de données, entrez le nom de la base de données fruitcounter.
  4. 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.

  1. 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.

  2. 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"
    
  3. 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
    
  4. Ouvrez un navigateur et accédez à http://localhost:8080.

  5. 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/cloudant pour 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.js est 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 fonction app.route stocke 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 MapReduce pour 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.html est la page Web de l'application qui utilise l'infrastructure Vue.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 /fruit de 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.

  1. 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 myfruitcounter qui utilise la stratégie docker et 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=fruitcounter  
    

    Exemple 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
    
  2. 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.