构建用于在 IBM Cloudant 中存储信息的应用程序
了解如何从存储在本地工作站上的源代码构建 Code Engine 应用程序。 本教程使用用于构建应用程序的样本源。 此应用程序连接到 IBM Cloudant 数据库并存储来自该应用程序的输入。
构建或映像构建是一种可用于从源代码创建容器映像的机制。Code Engine 支持从 Dockerfile 和 Cloud Native Buildpack 进行构建。
准备工作
所有 Code Engine 用户都需要具有现收现付帐户。 教程可能会产生成本。 使用“成本估算器”可根据您的预计使用量生成成本估算。 有关更多信息,请参阅 Code Engine 定价。
创建 IBM Cloudant 服务实例和数据库
第一步是创建 IBM Cloudant 服务实例,然后创建数据库。 您可以创建一个 从控制台 或使用 CLI 命令。 此外,创建可传递到应用程序的服务凭证。
- 创建 IBM Cloudant 服务实例,遵循 IBM Cloudant 入门中的步骤。 将实例命名为
CloudantFruitCounter
。 请确保通过创建服务凭证来完成该任务。 - 打开实例的 IBM Cloudant 仪表板,然后单击 创建数据库。
- 在“创建数据库”窗口中,输入数据库名称
fruitcounter
。 - 请勿选择 分区 选项,然后单击 创建。
在本地测试应用程序
在 Code Engine中创建代码作为应用程序之前,请在本地测试代码以确保其正常运行。
-
从 IBM Cloudant 仪表板检索 IBM Cloudant 服务凭证。 有关检索凭证的更多信息,请参阅 创建服务凭证。
-
使用服务凭证中的值设置环境变量。
export CLOUDANT_URL=<your_url>
export CLOUDANT_APIKEY=<your_key>
export DBNAME="fruitcounter"
-
克隆
fruit-counter
存储库,切换到此目录,然后安装并启动依赖关系。git clone https://github.com/IBM/CodeEngine cd CodeEngine/fruit-counter npm install npm run start
-
打开浏览器并转至
http://localhost:8080
。 -
挑选您最喜欢的水果并提交您的选择。 应用程序接受您的选择,并显示正在运行的总选取数。
您可以通过转至 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
命令从本地源构建映像,并部署引用此已构建映像的应用程序。
-
运行 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
-
通过打开水果拾取器应用程序的所提供 URL 来测试应用程序。 挑选您最喜欢的水果并提交。 显示水果选项的运行总计。 您可以刷新应用程序并选择其他水果。 添加将显示在运行总计中。