专业版沙箱/生产环境搭建
提前准备项:
1.购买资源(需要资源购买,请联系 赵强zhaoqiangs@yonyou.com)购买后会提供机器ip和kubeconfig.json认证信息
2.开发者中心账号密码(资源下来了,需要用管理员账号 注册集群、创建资源池、创建引擎和流水线)
3.gitee或gitlap代码仓库账号密码(用来推送专业版脚手架代码,推荐gitee 稳定;github由于公司网络限制,不支持)
4.域名前缀 *.yonisv.com
一、注册集群
地址:https://developer.yonyoucloud.com/
账号密码:使用管理员账号、密码,选择自己的租户。
登录开发者中心,打开“全部产品”
容器服务--》集群管理--》注册集群
集群名称 自定义即可
云平台类型:华为云
认证方式:Kubeconfig
二、资源池管理
1. 添加资源池
2. 添加主机
注:添加主机,仅绑定node节点即可,不要绑定ingress机器
我们isv标准资源套餐里面有两个node节点主机(针对机器ip起个对应的主机别名,比如:node1,node2),注意不要绑定ingress机器
每添加一个主机,都接入一个对应的ip
三、创建引擎
若已有资源池,可忽略上面第一、二步。
1.登录开发者中心
2.新建引擎
注:编码命名规则,由不少于4位的小写字母或数字组成,且不能以数字开头
编码:引擎编码
名称:引擎名称 (对应-应用构建-新增应用-选择的 应用引擎)
引擎信息查看:点击查看进入引擎信息页面
3.推送GIT地址(推荐gitee 稳定)
推荐,先在git或gitee上创建一个空仓库。仓库里的项目名 建议取 引擎编码!
然后在“脚手架”处推送git地址(平台就会把脚手架代码推送到你上面建的git空仓库里)。
配置git仓库信息:
填写对应的仓库信息(git仓库地址必须小写),可以通过点击 立即验证
git仓库地址格式填写的正确性,点击确定后,等待代码推送(大约1分钟),
可能会出现超时但git仓库里面已经有代码生成的情况,此时不需要再次点击确定。
注:用户名、密码 是上面创建的git或gitee仓库的账户、密码。
若推送失败,但你确认地址、账号、密码无误,再次确定即可,尝试重新推送
4.创建流水线
前端、后端流水线创建过程步骤:创建流水线的这种方式,需要 前、后端 一个个单独创建流水线;然后上传配置文件。
详细步骤:
选择自己的"数据中心"下的"资源池"
然后点击“创建应用”。就会创建流水线并第一次自动执行。
5.解析短域名
需要一个https的短域名
- ISV把自己要使用的域名,告诉对接的 用友-生态项目部的开发人员,对其进行解析。
- 查看ingress域名
配置https证书及域名和实例ingress域名的映射关系
然后ISV获取到解析后的域名后,需要在开发者中心 修改前后端地址
访问地址,为空即可(为空时走统一node域名),否则预览时报错。
6.配置文件修改
6.1 后端配置文件修改
- 创建application.properties配置文件
- 创建mdd-redis.properties配置文件
- 创建mdd-redis.properties配置文件
脚手架代码里有这三个配置文件,copy下来修改自己对应的配置项
也可以直接使用我们整理的配置文件(提取了公共变量,配置项少些) 后端配置文件
6.1.1 获取access.key和access.secret信息
6.1.2 获取appkey和appsecret信息
- 进入沙箱环境
搜索:我的应用 --》添加自建应用 --》集成开发
应用名称、应用标签等信息自定义填写。
下一步,点下“开发平台”按钮, 下一步,点下“API授权”
然后就可以自己 在该租户下 创建一套:appcode、appkey、appsecret。
复制下面这对 appKey、appSecret。如果调用协同某些接口,或使用生态租户 也需要配置appCode,将其配置到配置文件中!
6.1.3 授权API
通过“新增API”获取对应的api授权功能。
勾选ISV REST API路由,然后点击左下角的确定按钮。【授权,否则后台启动报错!!!】
此时一个具有ISV REST API路由授权的集成开发应用就创建好了。
6.1.4 订阅事件
该事件订阅 是保存设计器时 触发清UI元数据缓存的。
新增订阅事件、如图所示
填写回调地址(注意:‘game2021.yonisv.com’ 是自己项目解析的域名,不是统一node的域名) 点击保存按钮,完成缓存的订阅。
示例:
https://game2021.yonisv.com/be/rest/v1/openapi/isv/event
注:点击“测试”按钮,验证是否配置正确。
保存 设计器 时触发该事件订阅 清UI元数据缓存。
6.2 前端配置文件env.json
{
"domainKey": "devcom2021",
"default": {
"base_url": "https://game2021.yonisv.com/be",
"tpl_url": "https://ms-dbox.yyuap.com/mdf",
"report_url": "https://intelliv-dbox.yyuap.com",
"print_url": "https://game2021.yonisv.com/be",
"workflow_url": "https://yb-dbox.yyuap.com",
"customize_button_url": "https://game2021.yonisv.com/be",
"file_url": "https://ezone-dbox.yyuap.com",
"cooperation_url" : "https://ykj-esn-test.oss-cn-beijing.aliyuncs.com/suite/cooperation/build"
}
domainKey 改为自己的引擎编码;
base_url、print_url、customize_button_url 改为自己解析的域名
7.修改流水线配置
7.1 前端流水线
-
#配置前端启动命令,***-fe 是自己的 前端脚手架 文件名。 cd ***-fe && npm run build:extend && node bin.js
- 流水线绑定配置文件:
保存重新执行流水线。
7.2 后端流水线
保存重新执行流水线。
7.3 然后确认下,前、后端 实例是否成功启动,通过开发者中心查看后台日志。
8.验证
访问 https://解析的域名/menu
若页面返回如下,表示引擎及流水线 已创建完成。下面就可以进入专业版开发了。
四、添加开发成员
1.沙箱环境开发成员添加流程
2.引擎添加开发成员
上一步添加开发成员后,需要在指定的引擎-成员列表 下,添加开发成员,这样开发人员在沙箱环境创建应用时,才能选到该引擎。
3.快速入门(本地调试访问)
五、环境搭建可能遇到的问题
1.容器启动失败
容器日志报Tomcat异常;
tomcat版本问题:
选择上面这个版本。
2.预览设计器报错
解决方案:开发者中心的引擎-访问地址,不要配置自己的域名,配置为空(为空的话走统一node域名,配置自己域名就走自己的域名,统一node升级后的注意点)
3.后端idea启动报错:不兼容的类型
4.后端启动报错:open api tenant auth provider failed, please check your configuration
检查配置文件:【都可以从开发者中心的引擎的配置文件中拔下来】
#个人开发者中心的 鉴权配置
access.key=J29QhAJNl4M********
access.secret=F5w7P9FwxS2vfoob3P2aG********
#openapi的 授权
ucf.mdd.open-api.api-host=https://open-api-dbox.yyuap.com
ucf.mdd.open-api.app-key=d5a4c695d1f3405fbff6********
ucf.mdd.open-api.app-secret=329bb719b0c14650a3d37c9********
5.沙箱/生产 配置中心的配置未生效,读取的本地配置文件
前端gitee部署后,未读取配置中心配置文件,而是读取的本地代码的。
是由于平台路径配错了
1.首先,确认代码的配置文件的绝对路径:
2.修改平台的绝对路径为 上面的路径,注意 上面路径要去掉env.json,因为下面默认带了。
6.沙箱环境 UI模板缓存问题
修改UI设计器后,预览不生效,需要清redis才生效 需要订阅事件,自动触发清缓存
找到自己的--》我的应用--》集成开发--》开发平台
回调地址中的域名就是 上面解析的域名,其他的是固定的
https://自己域名/be/rest/v1/openapi/isv/event
然后,创建订阅:
ISV_METACACHE_CLEAN
ISV元数据缓存清理
7.脚手架开发
后端脚手架扩展开发,尽量不要在脚手架模块内开发,要新增一个Module开发,方便后期升级脚手架。
注:1.要在bootstrap-pom.xml 新增Module依赖;2.新模块包路径,建议最好按 com.yonyou.ucf.mdf.app 前缀,否则 启动类还得加你们自己的扫描包
<!-- 新增模块 -->
<dependency>
<groupId>com.yonyou.ucf</groupId>
<artifactId>dev-devcom2021-tools</artifactId>
<version>${project.version}</version>
</dependency>
另外,Module名称 建议和脚手架模块命名规则一致:dev-引擎编码-自定义
8.点击节点【勾选 自动编码 的节点】 找不到表字段 ytenant_id
9.自动编码报错
{"999","com/yonyou/ucf/mdd/ext/bill/common/BillNumberInfoUtils"}
解决:执行流水线 第一次 ,勾选强制拉取依赖
10.新的ISV租户,使用工作流需要注册
友空间找 张达(zhangdav@yonyou.com),或者自己调接口注册:
#post请求
#最后面的参数: sy01(ISV的引擎编码) 、ED、PC 都注册一下
https://ys.yonyoucloud.com/ubpm-process-center-be/rest/registered/registeredServer/sy01
https://ys.yonyoucloud.com/ubpm-process-center-be/rest/registered/registeredServer/ED
https://ys.yonyoucloud.com/ubpm-process-center-be/rest/registered/registeredServer/PC
#入参租户id
{
"tenantId": "ISV租户id"
}
11.新的ISV租户,使用业务流需要注册
提供租户id、引擎编码、后端域名--》友空间找 闫祖越(yanzyf@yonyou.com)