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

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

[经验分享] 调用作业平台API执行脚本例子分享

 关闭 [复制链接]

4

主题

0

好友

43

积分

预备会员

Rank: 1

发表于 2017-5-14 15:30:30 |显示全部楼层
今天跟大家分享下如何调用作业平台API去执行脚本,本文的例子呢也是简单做个示范和参考,希望对大家有帮助。
在作业平台中有两个API可以去执行脚本,分别是execute_task和fast_execute_script。这两个接口使用场景有些不一样,在这里我简单描述一下。
Ø  execute_task:根据作业模板ID启动作业。也就是说,调这个接口得依赖于已经在作业平台建好的作业。风险也就是,一旦这个作业被人删了或者修改过了导致获取的数据和原先设计的不一样了,那么就有可能导致你后台在调接口获取返回的数据的程序出错;
Ø  fast_execute_script快速执行脚本。这个呢每次去执行脚本的时候,脚本内容都是程序传过去的,不需要在作业平台中提前写好脚本或者建好作业。这样好处也就是可以避免在作业平台的脚本或作业被人动过而影响程序。所以我个人是比较倾向使用这个接口的。但是这个接口也有不足的地方,就是不能执行多个步骤的脚本。
因此,大家就依据自己实际情况来选择使用的API进行使用吧。
第一个例子,execute_task
一、            查看API文档:

                              
1.png

从文档中得知,我们需要app_id、task_id、steps、app_code以及app_secret这几个必填项。如果只是做个测试,app_id可以在配置平台的页面看到,app_code和app_secret可以在paas平台的页面上看下,如下截图:
2.png

业务ID截图
3.png

app_code和app_secret截图
那如果是写程序,整个调用接口的逻辑又是怎样的呢?
二、            梳理调用接口的逻辑:
以下流程信息,供大家参考。
4.png

三、            示例代码:
由于我只是测试,所以业务ID我就直接到配置平台上去看了,就不调用接口来获取了。大家进行测试的之后也可以参考一下,简单一些完成测试即可。
5.png

调用get_task获取task_id
6.png

调用get_task_detail获取steps内容
7.png

调用execute_task获取task_instance_id
8.png

调用get_task_ip_log获取作业执行返回的数据
第二个例子,fast_execute_script
一、            查看API文档:
9.png

这个API看起来要传递的参数有点多,但是流程并没有上个接口那么复杂,该接口的参数都是很容易获得,也很容易看懂的。文档中都已经有解释了,我就不重复描述了。
二、            梳理调用接口的逻辑:
在这个例子呢,我分享的场景是对该业务下的部分机器执行某脚本,所以就涉及到另外两个接口get_app_host_list和get_module_host_list。如果是对该业务下的全部机器执行同样的脚本内容的话,就不需要调用到这两个接口。简单的业务逻辑如下:
10.png

三、            实例代码:
11.png

通过用户获取业务
12.png

通过业务获取模块
13.png

通过模块获取主机
14.png

执行脚本
15.png

获取脚本返回内容
这两个例子,调用接口的方式有所不一样,第一种呢直接就用http请求去调用了,第二种呢是利用开发框架自带的封装好的blueking的组件来调用的,所以也都分享给大家,希望对大家有帮助。
最后大家别忘了,把APP加入到白名单哦,不然是没有权限调用API的哦。

1

主题

0

好友

35

积分

预备会员

Rank: 1

发表于 2017-5-25 10:28:26 |显示全部楼层
这个app_code,app_secret,bk_token每次要修改脚本里面的内容吗?能直接从输入获取吗?

1

主题

0

好友

35

积分

预备会员

Rank: 1

发表于 2017-5-25 10:31:30 |显示全部楼层
比如想把其中几个组件(A,B,C)组合成一个新的组件(M),这个新的组件M内部会调用这几个A,B,C,新组件M里面每次要手动修改A,B,C说用到的app_code,app_secret,bk_token?

蓝鲸官网

GMT+8, 2018-4-26 15:45

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部