在蓝鲸标准运维上进行原子开发

最近在标准运维上进行了原子开发,下面记录一下开发的具体步骤以及流程的创建步骤,此处以tsf相关原子为例

一、创建Django App ,在项目根目录下执行:

Django-admin startapp custom_atoms

并在新建App目录下,创建components/collections目录,在此目录下创建相应的.py文件,进行原子后端代码开发。

二、将上述创建的custom_atoms,加入到conf/settings_custom.py中INSTALLED_APPS_CUSTOM里。

三、配置ESB,在blueking/component/apis中,加入自定义接入的ESB API文件。(该步骤不是必须的,有些原子不需要ESB的调用,因此也不需要配置)

ESB配置步骤请参考:https://www.cnblogs.com/wangyingblock/p/11175159.html

在blueking/component/collections.py中加入上述创建的ESB类,否则不能在App中使用该ESB API。

四、原子后台开发

1、后台执行逻辑

class PushFileDataService(Service):原子后台执行逻辑
def execute(self, data, parent_data):前端参数获取、API参数组装、结果解析、结果输出。
注意:
1、data是前端数据,对应于前端表单输入,可以用get_one_of_inputs获取。
2、parent_data是任务的公共参数,executor为执行者,bk_cc_id为所属业务ID。具体可以参考gcloud/taskflow3/utils.py
3、执行完成后可以使用set_outputs写入返回值和异常信息(ex_data)
4、return True 表述原子执行成功,False表示原子执行失败
2、输出参数格式化

def outputs_format(self):输出参数格式化。type有str、int、dict、list等。对应于set_outputs的返回值。

3、原子定义

name:原子名称

code: 唯一编码

bound_service:  绑定后台逻辑代码

form: 前端表单定义文件路径

五、原子前端开发 

1、创建js文件。在static/下创建/custom_atoms/tsf文件夹,并创建对应的js文件

 

2、js文件内容编写

其中tsf_get_tsf_status 对应于后台的code。tag_code为参数名,全局唯一,用于后台取值。type前端表单类型,attrs对应type的属性设置。

3、提交代码

执行 python manage.py collectstatic –noinput,然后就可以提交代码并打包发布了。

python manage.py collectstatic:把静态文件收集到 STATIC_ROOT中

标准运维部署需要注意:

    1、删除本地运行产生的pyc文件

    2、使用mac打包时关闭自动生成隐藏文件的功能

六、标准运维流程创建

1、拖出所需的原子

2、按照流程,连接原子

3、填写所需参数并设置基础属性

4、全局变量的使用

场景一:流程中第二个原子所需参数是第一个原子的输出参数

 方法:将第一个原子的输出参数☑️,如上图所示,会生成一个全局变量,在第二个原子中使用

使用

场景二:同一个参数,在流程中多次使用如:部署组ID

解决方法:手动创建一个全局变量,并使用

 将其他原子所需部署组ID也替换成上述全局变量。

 5、执行流程

流程创建完毕,点击保存,进入列表页,会看到刚才创建的流程,点击‘新建任务’会执行该流程

按照步骤运行

第一步

第二步:填写所需参数

第三步:点击执行

5、查看运行结果:点击原子即可查看



原文地址:https://www.cnblogs.com/wangyingblock/p/11170268.html