IBM Cloud Docs
Creación de aplicaciones que almacenan información en IBM Cloudant

Creación de aplicaciones que almacenan información en IBM Cloudant

Aprenda a crear la aplicación Code Engine a partir del código fuente almacenado en la estación de trabajo local. Esta guía de aprendizaje utiliza un origen de ejemplo que se utiliza para crear la app. Esta aplicación se conecta a una base de datos IBM Cloudant y almacena la entrada de dicha aplicación.

Una compilación o una compilación de imagen es un mecanismo que puede utilizar para crear una imagen de contenedor a partir del código fuente. Code Engine permite compilar desde un archivo Docker y desde Cloud Native Buildpacks.

Antes de empezar

Todos los usuarios de Code Engine están obligados a tener una cuenta de pago por uso. Las guías de aprendizaje pueden incurrir en costes. Utilice el Estimador de costes para generar una estimación de costes basada en el uso previsto. Para obtener más información, consulte Precios deCode Engine.

Crear una instancia de servicio y una base de datos de IBM Cloudant

El primer paso es crear una instancia de servicio de IBM Cloudant y, a continuación, crear una base de datos. Puede crear un desde la consola o utilizando mandatos de CLI. Además, cree credenciales de servicio que puede pasar a la aplicación.

  1. Cree una instancia de servicio de IBM Cloudant, siga los pasos de Iniciación a IBM Cloudant. Asigne el nombre CloudantFruitCounter a la instancia. Asegúrese de completar la tarea creando las credenciales de servicio.
  2. Abra el panel de control IBM Cloudant para la instancia y pulse Crear base de datos.
  3. En la ventana Crear base de datos, especifique el nombre de base de datos fruitcounter.
  4. No seleccione la opción Particionado y pulse Crear.

Probar la aplicación localmente

Antes de crear el código como una aplicación en Code Engine, pruebe el código localmente para asegurarse de que funciona correctamente.

  1. Recupere las credenciales del servicio IBM Cloudant del panel de control IBM Cloudant. Para obtener más información sobre la recuperación de credenciales, consulte Creación de credenciales de servicio.

  2. Establezca las variables de entorno con los valores de las credenciales de servicio.

    export CLOUDANT_URL=<your_url>
    
    export CLOUDANT_APIKEY=<your_key>
    
    export DBNAME="fruitcounter"
    
  3. Clone el repositorio fruit-counter, vaya a este directorio y, a continuación, instale e inicie las dependencias.

    git clone https://github.com/IBM/CodeEngine
    cd CodeEngine/fruit-counter
    npm install
    npm run start
    
  4. Abra un navegador y vaya a http://localhost:8080.

  5. Escoge tu fruta favorita y envía tu elección. La aplicación acepta su elección y muestra un total acumulado de selecciones.

Puede verificar que su elección de fruta se ha registrado en Cloudant yendo al panel de control de base de datos de IBM Cloudant.

Veamos cómo funciona este programa.

Esta aplicación es una aplicación Node.js simple que utiliza dos paquetes principales.

  • @ibm-cloud/cloudant para conectarse a IBM Cloudant y para leer y escribir datos.
  • Express para crear un servidor web que permita a los usuarios enviar su selección de fruta y ver un total acumulado de nuestros datos.

Esta aplicación se compone de dos archivos principales.

server.js
El archivo server.js se utiliza para ejecutar el servidor web y se comunica con Cloudant. Después de que un usuario seleccione una opción fruit, la página frontal envía el valor a la ruta /fruit (consulte más abajo), la función app.route almacena un nuevo documento en Cloudant con la opción fruit y, a continuación, lee el total acumulado para volver a la página frontal.
La operación de lectura utiliza un documento de diseño de Cloudant y una vista de MapReduce para agregar documentos. Para obtener más información sobre vistas y documentos de diseño, consulte Creación de vistas(MapReduce).
index.html
El archivo index.html es la página web de la aplicación que utiliza la infraestructura de Vue.js. Cuando se carga esta página, muestra las opciones de fruta disponibles.
Después de enviar su elección, la infraestructura realiza una solicitud HTTP POST con su selección de fruta a la ruta /fruit de la aplicación. La devolución de la aplicación contiene el total acumulado de opciones de fruta, que se muestra a continuación.

Despliegue de la aplicación en Code Engine

Ahora que comprende cómo funciona esta aplicación, puede desplegarla en Code Engine. Puede seguir los pasos para desplegar una aplicación desde un repositorio público, especificando CODEENGINEREPO como repositorio de imágenes. Asegúrese de incluir las variables de entorno que ha recopilado y establecido localmente en el paso 2.

Puesto que ha clonado el repositorio al probar la aplicación localmente, puede utilizar el mandato app create para crear una imagen desde el origen local y desplegar la aplicación que hace referencia a esta imagen compilada.

  1. Ejecute el mandato app create. Debe proporcionar un nombre para la aplicación y la ubicación del código fuente. El ejemplo siguiente crea una aplicación denominada myfruitcounter que utiliza la estrategia docker y proporciona la ubicación para el código fuente en el directorio actual (.). También debe establecer las variables de entorno para conectarse a Cloudant.

    ibmcloud ce app create --name myfruitcounter --build-source . --strategy dockerfile --env CLOUDANT_URL=<your_url> --env CLOUDANT_APIKEY=<your_key> --env DBNAME=fruitcounter  
    

    Salida de ejemplo

    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. Pruebe la aplicación abriendo el URL proporcionado para la aplicación del selector de fruta. Escoja su fruta favorita y envíela. Se muestra el total acumulado de opciones de fruta. Puede renovar la aplicación y elegir otra fruta. La adición se muestra en el total acumulado.