在本文中,我们将使用 Pivotal Cloud Foundry (PCF) Dev 在 Cloudfoundry 上部署 RESTful 服务。由于创建一个宁静的网络服务不是这篇文章的一部分,我已经创建了 employee-service,它有一个静态后端并且可以从 GitHub 克隆。
在将其部署到 Cloudfoundry 之前,让我们简单介绍一下。
Cloudfoundry
Cloud Foundry 是一个开源云平台即服务 (PaaS),开发人员可以在其上构建、部署、运行和扩展公共和私有云模型上的应用程序。它是 VMware 最初由 VMware 创建,现在它是 Pivotal Software 的一部分。
现在让我们使用 PCF Dev 在本地工作站上设置轻量级 PCF,步骤如下:
第1步: 下载并安装cf-cli-installer_6.22.2_osx.pkg在一个目录下,对我来说是/Users/ ArpitAggarwal/cloudfoundry
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ sudo installer -pkg ./cf-cli-installer_6.22.2_osx.pkg -target /
第 2 步: 测试 Cloudfoundry CLI 是否安装成功:
$ cf help
第3步:接下来我们将下载并安装PCF Dev到我们之前创建的同一目录,如下:
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ unzip pcfdev-v0.22.0+PCF1.8.2-osx.zip $ ./pcfdev-v0.22.0+PCF1.8.2-osx
开始 4: 开始 PCF Dev:
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ cf dev start
上面的命令在我们运行 PCF 的工作站上启动了一个虚拟机。
第 5 步: 从 GitHub 的目录中克隆 employee-service,对我来说是 /Users/ArpitAggarwal/
$ cd /Users/ArpitAggarwal/ $ git clone https://github.com/arpitaggarwal/empoyee-service.git
第 6 步:使用 manifest.yml 更新 employee-service:
$ cd /Users/ArpitAggarwal/employee-service $ touch manifest.yml
上面创建的 manifest.yml 被 PCF 用于部署到本地工作站或公共云上。
第七步:将以下内容复制到manifest.yml中:
--- applications: - name: empoyee-service memory: 1G random-route: true path: build/libs/empoyee-service-0.0.1.war buildpack: https://github.com/arpitaggarwal/java-buildpack.git
上面指定的name 属性是应用程序的名称。 path 属性是应用程序的目录位置。 buildpack 属性指向 java-buildpack,PCF 使用它来运行基于 JVM 的应用程序。
有关 manifest.yml 的更多信息,您可以在此处 探索。
Step 8: 接下来我们构建应用,登录后推送到Cloudfoundry本地工作站,如下:
$ cd /Users/ArpitAggarwal/empoyee-service $ empoyee-service git:(master) ./gradlew clean build $ empoyee-service git:(master) ✗ cf login -a api.local.pcfdev.io --skip-ssl-validation API endpoint: api.local.pcfdev.io Email> user Password> pass $ cf push
上面指定的 cf push 命令将应用推送或将对现有应用的更改同步到 URL http://empoyee-service.local.pcfdev.io
应用程序是否已成功部署到 Cloudfoundry 上?
让我们查看最近的部署日志来验证它,我们可以在其中查看服务器启动状态,如下所示:
$ cd /Users/ArpitAggarwal/empoyee-service $ cf logs empoyee-service --recent
我们还可以验证应用程序部署对其执行 GET 和 POST 请求,如下所示:
获取所有员工的GET请求:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://empoyee-service.local.pcfdev.io/empoyee/get
创建员工的 POST 请求:
curl -H "Content-Type: application/json" -X POST -d '{"name": "Arpit Aggarwal","email":"aggarwalarpit.89@gmail.com"}' http://empoyee-service.local.pcfdev.io/employee/create
完整的源代码托管在 github 上。
标签2: Java教程地址:https://www.cundage.com/article/jcg-deploying-restful-service-cloudfoundry.html