IBM Cloud Docs
构建用于在 IBM Cloudant 中存储信息的应用程序

构建用于在 IBM Cloudant 中存储信息的应用程序

了解如何从存储在本地工作站上的源代码构建 Code Engine 应用程序。 本教程使用用于构建应用程序的样本源。 此应用程序连接到 IBM Cloudant 数据库并存储来自该应用程序的输入。

构建或映像构建是一种可用于从源代码创建容器映像的机制。Code Engine 支持从 Dockerfile 和 Cloud Native Buildpack 进行构建。

准备工作

所有 Code Engine 用户都需要具有现收现付帐户。 教程可能会产生成本。 使用“成本估算器”可根据您的预计使用量生成成本估算。 有关更多信息,请参阅 Code Engine 定价

创建 IBM Cloudant 服务实例和数据库

第一步是创建 IBM Cloudant 服务实例,然后创建数据库。 您可以创建一个 从控制台 或使用 CLI 命令。 此外,创建可传递到应用程序的服务凭证。

  1. 创建 IBM Cloudant 服务实例,遵循 IBM Cloudant 入门中的步骤。 将实例命名为 CloudantFruitCounter。 请确保通过创建服务凭证来完成该任务。
  2. 打开实例的 IBM Cloudant 仪表板,然后单击 创建数据库
  3. 在“创建数据库”窗口中,输入数据库名称 fruitcounter
  4. 请勿选择 分区 选项,然后单击 创建

在本地测试应用程序

在 Code Engine中创建代码作为应用程序之前,请在本地测试代码以确保其正常运行。

  1. 从 IBM Cloudant 仪表板检索 IBM Cloudant 服务凭证。 有关检索凭证的更多信息,请参阅 创建服务凭证

  2. 使用服务凭证中的值设置环境变量。

    export CLOUDANT_URL=<your_url>
    
    export CLOUDANT_APIKEY=<your_key>
    
    export DBNAME="fruitcounter"
    
  3. 克隆 fruit-counter 存储库,切换到此目录,然后安装并启动依赖关系。

    git clone https://github.com/IBM/CodeEngine
    cd CodeEngine/fruit-counter
    npm install
    npm run start
    
  4. 打开浏览器并转至 http://localhost:8080

  5. 挑选您最喜欢的水果并提交您的选择。 应用程序接受您的选择,并显示正在运行的总选取数。

您可以通过转至 IBM Cloudant 数据库仪表板,验证您的水果选择是否已在 Cloudant 中注册。

让我们看看这个程序是如何工作的。

此应用程序是一个简单的 Node.js 应用程序,它使用两个主包。

  • @ibm-cloud/cloudant,用于连接到 IBM Cloudant 以及读写数据。
  • Express,用于创建 Web 服务器,允许用户提交其选择的水果,并查看我们的数据的运行总计。

此应用程序由两个主要文件组成。

server.js
server.js 文件用于运行 Web 服务器并与 Cloudant通信。 用户选择水果选项后,前端页面会将值提交到 /fruit 路径 (请参阅以下内容),app.route 函数会将新文档与水果选项一起存储在 Cloudant 中,然后回读运行总计以返回到前端页面。
读操作使用 Cloudant 设计文档和 MapReduce 视图来聚集文档。 有关视图和设计文档的更多信息,请参阅 创建视图(MapReduce)
index.html
index.html 文件是使用 Vue.js 框架的应用程序的 Web 页面。 装入此页面时,将显示可用的水果选项。
提交选择后,框架会向应用程序的 /fruit 路由发出 HTTP POST 请求,其中包含您的水果选择。 应用返回包含水果选项的运行总计,然后显示。

将应用程序部署到 Code Engine

现在,您了解了此应用程序的工作方式,可以将其部署到 Code Engine。 您可以执行以下步骤来部署 公共存储库中的应用程序,将 CODEENGINEREPO 指定为映像存储库。 请确保包含在步骤 2 中收集并在本地设置的环境变量。

因为您在 本地测试应用程序 时克隆了存储库,所以可以使用 app create 命令从本地源构建映像,并部署引用此已构建映像的应用程序。

  1. 运行 app create 命令。 您必须提供应用程序的名称和源代码的位置。 以下示例创建名为 myfruitcounter 的应用程序,该应用程序使用 docker 策略并提供当前目录 (.) 中源代码的位置。您还必须设置环境变量以连接到 Cloudant。

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

    示例输出

    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. 通过打开水果拾取器应用程序的所提供 URL 来测试应用程序。 挑选您最喜欢的水果并提交。 显示水果选项的运行总计。 您可以刷新应用程序并选择其他水果。 添加将显示在运行总计中。