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


    最近在标准运维上进行了原子开发,下面记录一下开发的具体步骤以及流程的创建步骤,此处以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、查看运行结果:点击原子即可查看

    
    
    
  • 相关阅读:
    Dart语言简介
    Flutter简介
    Flutter之环境配置详解for mac版本
    mac 安卓生成证书(uniapp项目安卓证书申请)
    IOS开发者账号申请流程以及开发证书与配置文件的使用
    解读typescript中 super关键字的用法
    解决Vue编译和打包时频繁内存溢出情况CALL_AND_RETRY_LAST Allocation failed
    JS pc端和移动端共同实现复制到剪贴板功能实现
    Web前端接入人机识别验证码---腾讯防水墙
    Unity3D Demo项目开发记录
  • 原文地址:https://www.cnblogs.com/wangyingblock/p/11170268.html
Copyright © 2020-2023  润新知