在本文中,我们将使用Pivotal Cloud Foundry(PCF)Dev在Cloudfoundry上部署RESTful服务。 由于创建静态Web服务不是本文的一部分,因此我已经创建了employee-service ,它具有静态后端,可从GitHub进行克隆。
在将它部署到Cloudfoundry之前,让我们简要介绍一下。
Cloudfoundry
Cloud Foundry是一个开源云平台即服务(PaaS),开发人员可以在该平台上构建,部署,运行和扩展公共和私有云模型上的应用程序。 它最初是由VMware创建的VMware,现在是Pivotal软件的一部分。
现在,通过以下步骤,使用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开发人员:
$ cd /Users/ArpitAggarwal/cloudfoundry/
$ cf dev start
上面的命令在我们运行PCF的工作站上启动一个虚拟机。
步骤5:从GitHub的目录中克隆员工服务 ,对我来说是/ Users / ArpitAggarwal /
$ cd /Users/ArpitAggarwal/
$ git clone https://github.com/arpitaggarwal/empoyee-service.git
步骤6:使用manifest.yml更新员工服务 :
$ cd /Users/ArpitAggarwal/employee-service
$ touch manifest.yml
上面创建的manifest.yml由PCF用于部署到本地工作站或公共云上。
步骤7:将以下内容复制到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的更多信息,可以在这里进行探索。
步骤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上 。
翻译自: https://www.javacodegeeks.com/2016/12/deploying-restful-service-cloudfoundry.html