腾讯蓝鲸论坛-专业的技术交流论坛

 找回密码
 立即加入蓝鲸智云论坛
忘了密码?
搜索
热搜: 用户手册 FAQ
查看: 2228|回复: 1

[经验分享] 蓝鲸ESB自定义编码组件的接入方法

[复制链接]

4

主题

0

好友

43

积分

预备会员

Rank: 1

发表于 2017-3-31 12:58:49 |显示全部楼层
本帖最后由 嘉为科技 于 2017-3-31 15:28 编辑

在蓝鲸DevOps技能培训的系列课程的第八讲中我们都学习了如何自助接入ESB组件,但想必大家也对ESB自定义编码组件的接入方法感兴趣,因此给大家分享下如何在蓝鲸上接入自定义的编码组件。
首先,当然是看ESB的使用指南,我们需要学习的章节是“组件开发”和“组件调用说明”以及“组件可用数据”。
那么,我们先来学习ESB组件的开发吧。
第一步,下载组件模板。
解压模板文件的内容如下截图,我们主要是参考get_host_list.py这个文件的格式和说明来进行我们的ESB组件的开发,这个文件的内容我就不再重复描述了,下面就来实战开发一个发送邮件的ESB组件吧。
            1.png

1
:组件模板文件

第二步,定义组件名称。
请注意,组件类名为组件模块名去掉下划线(_),并转为驼峰形式,如send_email组件类名应为SendEmailget_host_list组件类名应为GetHostList
第三步,编写组件文档。
组件开头部分为组件文档,注意事项是参数是必选的和可选的,写法是不一样的,请参考图2写法以及图3效果。
          1.png


2:参数写法


1.png


图3:相应效果

第四步,处理Form参数。

关于模块中的Field,常见的类型就是django的CharField、IntegerField等。但是如果要使用自定义的field例如字典格式,又应该怎么写呢?具体请参考《使用指南》的“组件可用数据”部分,如下图4所示。
1.png


图4:模块中自定义Field
我也分享个实际的例子,定义字典类型,如图5所示。
1.png


图5:模块中自定义dict Field例子
第五步,定义主体函数。

这一步的意思是写你的这个组件的具体实现某功能的函数。比如我的例子是是发送邮件,那么我就在这个地方定义一个发送邮件的函数,代码会在文末分享给大家,先给大家看下整个组件的py文件的代码结构,如图6所示。
1.png


图6:组件的py文件的代码结构
第六步,组件入口处理。

这一步是组件的入口,在这一步则是获取调用组件是传入的参数,然后将获取到的参数传递给在第五步定义的函数,并且执行该函数以完成该组件的功能(比如发送邮件)。自此ESB组件开发完毕,但是仍然有几个步骤要完成。
第七步,添加新系统和注册组件通道。
Ø  添加新系统的URL是:http://paas.xxx.com/esb/manager/system/list/
Ø  注册组件通道的URL是 http://paas.xxx.com/esb/manager/channel/add/
通道信息中填入内容如下:
---- 通道名称:[common]发送邮件
---- 通道路径:/common/send_email/
---- 所属组件系统:common
---- 对应组件代号:generic.common.send_email
1.png


图7:注册组件通道
第八步,更新组件文档。

运行如下两条命令即可:
---- cd /data/paas/open_paas/src
---- apidoc -o paas/static/doc/
第九步,重启ESB服务。

运行如下命令即可:
---- /data/paas/open_paas/bin/dashboard.sh restart esb
第十步,安装依赖包(如果需要)。

在第五步我们开发组件的主体函数的时候,可能会用到一些python的其他依赖包,比如ldap(当然我的例子中没用到ldap,我只是举个例子),那么你则需要为该组件安装python的想要依赖包,安装方法如下:
---- cd /data/paas/open_paas
---- source Envs/esb/bin/activate
---- pip install 包名
第十一步,测试调用组件发送邮件。
2.png
调用组件的代码

9.png

成功收到邮件

最后是发送邮件的ESB组件的py文件代码分享,希望对大家有帮助。另外,关于ESB组件调用,下一个帖子再分享。
3.png

代码第一部分


4.png

代码第二部分
5.png


代码第三部分
6.png


代码第四部分
7.png


代码第五部分
8.png

confis.py的代码


16

主题

1

好友

5795

积分

管理员

Rank: 48Rank: 48Rank: 48

发表于 2017-3-31 14:48:29 |显示全部楼层
官方确认,感谢合作伙伴分享

蓝鲸官网

GMT+8, 2018-6-20 11:25

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部