一.编写springboot代码,一旦应用部署到cf上就可以获取cf给我们应用请求头携带的token信息(我们只获取authorization,这就是应用的token,当然,应用在我们本地是获取不到authorization的):
二.编写manifest.yml文件:
---
applications:
- name: mindsphere-test
instances: 1
random-route: true
path: mftest-1.0-SNAPSHOT.jar
memory: 2G
三.将springboot项目打包,和manifest.yml放在同一目录目录结构如下:
四.
上传到linux环境(window有很多bug)使用cf push命令将应用推上mindshpere:
看到running状态表示成功:
执行 cf apps可以查看到我们的应用已经部署上去了
五.在MindSphere创建应用
首先输入网址:https://cnsocdev.cn1.mindsphere-in.cn/ 打开mindsphere登录页面:
然后打开Developer Cockpit:
-
-
然后创建自己的application:
-
类型:Standard
基础设施:MindSphere Cloud Foundry。
显示名称:MindSphere Test (字面上容易理解的就可以)
内部名称:mftest(这将会为成为应用URL的一部分。初始化创建后,内部名称不能被更改!)
版本:1.0.0(MindSphere 支持 Major.Minor.Patch 方案。版本必须以 >=1 的主号码开头。保存之后版本不能被更改。)
应用图标:随便上传一个就可以。
组件名称(mindsphere-test)
组件名称必须与 manifest.yml 中的 applications:- name 应用名称匹配。否则,生产系统中的自动注册将会失败。
Cloud Foundry URL:mindsphere-test-responsible-badger-dp.apps.cn1.mindsphere-in.cn
(使用 cf app {app_name} 来获取您部署的应用的 URL。)
-
端点:为您的组件添加至少一个端点。使用 /** 来匹配您应用的所有路径。
-
点击保存。将被重定向到应用详细信息。 应用程序处于In-Development状态,并且准备好注册了。
-
由于上传的图片大小有限制我们换一个图标:
-
显示创建成功了;
- 配置应用角色和范围
-
点击角色配置
首先创建范围:
-
这里暂时只赋予一个权限mdsp:core:iot.tsaUser(读取时间序列聚合的权限)
-
添加成功:
- 附:角色范围整理
-
(八)注册应用
1、切换到仪表盘选项卡,打开应用详细信息,单击注册。
-
-
-
接下来访问我们部署上去的应用:
-
访问{你的url}/getHeader,获取cf给我们的应用携带的token信息:
-
这是jwt加密的token,下面我们来解密一下:
使用jwt在线解密:http://jwt.calebb.net/
可以看到我们现在的token只有mdsp:core:iot.tsaUser的权限:
-
此时我们使用postman来获取一下我们上传的aggregates信息,发现是可以获取到的:
-
但是我们想要获取一下我们上传的events信息,发现报Access is denied也就是权限不够:
-
接下来我们赋给我们的app获取events的权限:
-
记得赋权限了之后退出mindsphere平台一下,以便刷新token:
然后重新使用上面的方式获取token,此时可以看到eventmanager权限已经有了:
-
此时再次去获取我们之前上次的event信息,此时就可以获取到了:
-
我们这次的项目是一个河钢项目,使用的技术栈是springboot+angular+ng.ant.design开发,下面上几个项目的截图。
-
【总结】
1、MindSphere整个基于Cloud Foundry开展的,Cloud Foundry是业界第一个开源PaaS云平台,
整个验证过程一步一个坎,其根本原因是对Cloud Foundry的不熟悉,后续有时间需要多学习一下这个平台,
如果时间允许,最好自己安装部署一遍。
2、MindSphere的小白级的资料太少,如果是一点基础都没有的,很难顺利上手,
而且资料不是基于“用户场景”的,像我的这种尝试场景,需要各处去寻找资料,知识也连不起来。
对使用者来说不是很友好。