-
ide:PyCharm 2020.2.3 (Professional Edition)
-
Python:3.6.8
-
Node:v14.17.6
-
MySQL: 5.7
-
git: 2.32.0.windows.2
进入GitHub的实战项目界面,复制项目git地址
打开命令行终端拉取项目下来,
git clone [email protected]:TencentBlueKing/bk-saas-edu.git
执行完成后即可拉取项目到本地
进入项目设置
配置项目结构
继续打开项目设置,找到并点击Python Interpreter
点击OK即可基于 Python3.6 创建一个虚拟环境
进入后端目录cd backend
- 下载bkapi-bk-sops
打开开发者中心 https://bkpaas.paas-edu.bktencent.com/ ,点击进入API文档
点击 bk-sops
如下图所示点击下载压缩包
在terminal中输入
pip install <包所在的路径>/bkapi-bk-sops-1.0.2.tar.gz
在terminal中输入pip list | grep bkapi-bk-sops
检查是否添加成功添加 bkapi-bk-sops 依赖
在命令行输入pip install -r requirements.txt
,按回车执行完成后即可
注意:如果在本教程之前已经完成了依赖安装,请确保 bkapi-client-core>=1.1.6
,否则后续调用 ESB API 可能会失败
打开 https://gitee.com/ ,(需注册)登录后新建仓库
创建完毕后复制仓库的 git 地址
回到 Pycharm 的 terminal 终端,清空远程仓库地址并添加 gitee 仓库地址为远程仓库
git remote remove origin
git remote add origin <项目仓库地址>
确定是否修改成功:git remote -v
在命令行中输入 git push origin master
刷新下gitee的项目界面,会发现已经成功把本地的仓库推送到gitee的仓库中了
进入开发者中心 https://bkpaas.paas-edu.bktencent.com/ ,点击创建应用
输入应用信息与仓库信息
蓝鲸SaaS项目就创建成功啦!
进入项目页面,点击新增模块
成功创建frontend
模块
打开开发者中心 https://bkpaas.paas-edu.bktencent.com/ , 进入创建的蓝鲸应用
点击基本设置
->基本信息
如图所示,bk_app_code
为应用ID,而bk_app_secret
为应用鉴权TOKEN,这两个变量在之后的环境变量配置会用到。
打开命令行终端,输入下列指令进入MySQL:
mysql -u root -p
以应用ID为数据库名创建数据库,以上面的测试项目为例,应用ID为saas-prac-guide
,则创建数据库语句为
CREATE DATABASE `saas-prac-guide` default charset utf8 COLLATE utf8_general_ci;
创建数据库成功
打开Pycharm,在bk-saas-edu/backend/
中新建local_settings.py
在该文件中输入数据库配置:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": APP_CODE, # noqa
"USER": "root",
"PASSWORD": "",
"HOST": "localhost",
"PORT": "3306",
},
}
USER
和PASSWORD
中分别输入本地MySQL的用户名和密码,NAME
中输入应用IDbk_app_code
的内容
打开backend/support-files/iam/0001_bk_saas_edu_20220321-1505.json
按ctrl+r
搜索替换bk-saas-edu-v3
和bk-saas-edu
为自己的 appcode
修改项目信息介绍,修改成自己项目的信息即可,至少需要修改name
, name_en
, clients
的内容
如图进入配置页面,点击添加Python
所需的环境变量如下
PYTHONUNBUFFERED=1
BK_PAAS2_INNER_URL=http://paas-edu.bktencent.com:80
BK_PAAS2_URL=https://paas-edu.bktencent.com/
DJANGO_SETTINGS_MODULE=settings
BKPAAS_MAJOR_VERSION=3
NODE_ENV=development
BK_COMPONENT_API_URL=https://bkapi.paas-edu.bktencent.com
BK_LOGIN_URL=http://paas-edu.bktencent.com:80/login/
PIP_EXTRA_INDEX_URL=http://bkrepo.paas-edu.bktencent.com/pypi/bkpaas/pypi/simple
BK_API_URL_TMPL=http://bkapi.paas-edu.bktencent.com/api/{api_name}
BKAPP_CORS_ENABLED=off
BKAPP_CSRF_COOKIE_DOMAIN=paas-edu.bktencent.com
BKPAAS_APP_ID=<bk_app_code的内容>
BKPAAS_APP_SECRET=<bk_app_secret的内容>
点击运行
修改C:/Windows/System32/drivers/etc/hosts
,添加
127.0.0.1 local.paas-edu.bktencent.com
配置环境变量内容与上面一样
-
配置并运行 celery worker
python manage.py celery worker --pool=solo -l info
-
配置并运行 celery beat
python manage.py celery beat -l info
若重新运行celery beat报错的话,请删除backend/celerybeat.pid
后,重新运行celery beat
点击链接或访问http://local.paas-edu.bktencent.com:5000/
可打开如下页面:
cd frontend
npm install
若想重新安装,请将frontend
目录下的package-lock.json
, node_modules/
, lib/client/.webpack_cache/
删除后,重新执行上述命令
修改 frontend/package.json
,
-
填写
BKPAAS_APP_ID
和APP_CODE
,内容为创建的应用bk_app_code
-
填写
BKPAAS_APP_SECRET
,内容为应用bk_app_secret
npm run dev
点击链接或访问http://local.paas-edu.bktencent.com:8000/
可打开如下页面:
若想调用本地接口需要在本地把后端服务也启动起来,启动后通过操作前端界面即可调用后端接口。
注意:新建部署功能需要蓝鲸权限中心授权,请联系蓝鲸平台管理员进行权限审批
选择业务需要先获取业务权限,我们需要申请加入到权限中心 课堂练习专用 的用户组
打开权限中心:https://bkiam.paas-edu.bktencent.com/apply-join-user-group?limit=10¤t=1
申请后,请联系蓝鲸平台管理员进行权限审批
申请成功后即可获取到业务列表:
打开开发者中心->云 API 管理
->云 API 权限
,选择网关API
-bk-sops
,批量申请申请下列API权限:
- get_template_list --- 查询业务下的模板列表
- get_template_info --- 查询业务下的单个模板详情
- create_task --- 通过业务流程模板创建任务
- start_task --- 开始执行任务
- get_task_status --- 查询任务执行状态
申请后,请联系蓝鲸平台管理员进行权限审批
后端服务内置了权限中心校验包括获取项目流程模板、创建任务、启动任务、查看任务的权限,若需要跳过权限校验,则可配置环境变量BK_IAM_SKIP
为True
修改backend/local_settings.py
,增加BK_IAM_SKIP=True
若需要调用本地的后端服务,则需要修改前端的配置:修改frontend/lib/client/build/dev.env.js
中的API_URL
,原设置为调用预发布环境的后端服务,本地联调需要改为本地的后端服务地址,如//local.paas-edu.bktencent.com:5000/
修改根目录下的app_desc.yaml
,修改bk_app_code
配置
-
master分支---用于发布生产环境
-
dev分支---开发分支,不做内容限制
-
stag分支---用于发布预发布环境
- 打开git项目仓库,进入分支管理页面
新建分支,分别创建stag和dev分支
把 backend/support-files/iam/0001_bk_saas_edu_20220321-1505.json
和app_desc.yaml
的修改推送到自己的git仓库里
- 创建并切换到dev分支
git checkout -b dev
- 保存修改
git add app_desc.yaml
cd backend
git add support-files/iam/0001_bk_saas_edu_20220321-1505.json
git commit -m "feat(deploy): 修改iam项目配置和app_desc配置"
- 推送修改
git push origin dev
进入开发者中心增强服务
->数据存储
,点击启用RabbitMQ
进入开发者中心项目概览,切换模块至default
模块
进入环境配置界面,增加环境变量 BK_APIGW_NAME=bk-sops
, 生效范围选择 所有环境
若线上部署需要跳过权限中心的权限校验,则进入开发者中心的环境配置界面,增加环境变量 BK_IAM_SKIP=True
, 生效范围选择 所有环境
切换至frontend模块
进入环境配置页面,增加环境变量 API_URL=//apps.paas-edu.bktencent.com/stag--default--<你的app_code>/
, 生效范围选择 预发布环境
增加环境变量 API_URL=//apps.paas-edu.bktencent.com/prod--default--<你的app_code>/
, 生效范围选择 生产环境
请注意以上提到的开发者中心配置的环境变量,在配置后需要重新部署才能生效
新建Pull Request
合入代码
进入开发者中心项目概览,切换模块至default
模块
进入部署界面,点击部署
- 点击部署
进入开发者中心项目部署界面,点击“生产环境”
- 填写缺少的信息
切换至default
模块,点击生产环境,分支选择master
,
- 点击部署