本程序用于监控并处理命令文件夹中的文件。当程序发现命令文件夹下存在新创建的文件或已更新的文件时,程序将加载这些文件并执行文件中的命令,之后程序将处理过的文件名记录在命令文件夹同级目录的 .history 文件中。 .history 的数据格式如下:
[
{
"name":"sample.json", //已处理过文件的文件名
"loadTime":1594362344 //处理文件时的时间戳
}]
本程序提供了 docker image lfedge/ekuiper-kubernetes-tool
。建议作为 eKuiper docker container 的边车部署。
docker run lfedge/ekuiper-kubernetes-tool:$tag
字段 | 是否必填 | 类型 | 释义 |
---|---|---|---|
commands | 必填 | array | 命令集合 |
url | 必填 | string | http请求路径 |
method | 必填 | string | http请求方法 |
description | 选填 | string | 操作描述 |
data | 创建时必填 | json obj | 创建内容 |
port: 9081 //eKuiper 端口
timeout: 500 //执行一条命令超时时间(单位:毫秒)
intervalTime: 60 //隔多久检查一次命令文件夹(单位:秒)
ip: "127.0.0.1" //eKuiper ip地址
consoleLog: true //是否需要打印log到console上
fileLog: true //是否需要打印log到log文件中,如果需要,log将会打印到logPath指定文件中
logPath: "./log/kubernetes.log" //日志保存路径
commandDir: "./sample/" //命令文件夹路径
执行 go build -o tools/kubernetes/kubernetes tools/kubernetes/main.go
命令即可生成 kubernetes 程序。
{
"commands":[
{
"url":"/streams",
"description":"create stream1",
"method":"post",
"data":{
"sql":"create stream stream1 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
}
}]
}
{
"commands":[
{
"url":"/streams",
"description":"list stream",
"method":"get"
}]
}
{
"commands":[
{
"url":"/streams/stream1",
"description":"get stream1",
"method":"get"
}]
}
{
"commands":[
{
"url":"/streams/stream1",
"description":"del stream1",
"method":"delete"
}]
}
{
"commands":[
{
"url":"/rules",
"description":"create rule1",
"method":"post",
"data":{
"id":"rule1",
"sql":"SELECT * FROM stream1",
"actions":[
{
"log":{
}
}]
}
}]
}
{
"commands":[
{
"url":"/rules",
"description":"list rule",
"method":"get"
}]
}
{
"commands":[
{
"url":"/rules/rule1",
"description":"get rule1",
"method":"get"
}]
}
{
"commands":[
{
"url":"/rules/rule1",
"description":"del rule1",
"method":"delete"
}]
}
{
"commands":[
{
"url":"/rules/rule1/stop",
"description":"stop rule1",
"method":"post"
}]
}
{
"commands":[
{
"url":"/rules/rule1/start",
"description":"start rule1",
"method":"post"
}]
}
{
"commands":[
{
"url":"/rules/rule1/restart",
"description":"restart rule1",
"method":"post"
}]
}
{
"commands":[
{
"url":"/rules/rule1",
"description":"update rule1",
"method":"put",
"data":{
"id":"rule1",
"sql":"SELECT * FROM stream1",
"actions":[
{
"log":{
}
}]
}
}]
}
{
"commands":[
{
"url":"/rules/rule1/status",
"description":"get rule1 status",
"method":"get"
}]
}
{
"commands":[
{
"url":"/streams",
"description":"create stream1",
"method":"post",
"data":{
"sql":"create stream stream1 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
}
},
{
"url":"/streams",
"description":"create stream2",
"method":"post",
"data":{
"sql":"create stream stream2 (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\");"
}
},
{
"url":"/streams",
"description":"list stream",
"method":"get"
},
{
"url":"/streams/stream1",
"description":"get stream1",
"method":"get"
},
{
"url":"/streams/stream2",
"description":"del stream2",
"method":"delete"
},
{
"url":"/rules",
"description":"create rule1",
"method":"post",
"data":{
"id":"rule1",
"sql":"SELECT * FROM stream1",
"actions":[
{
"log":{
}
}]
}
},
{
"url":"/rules",
"description":"create rule2",
"method":"post",
"data":{
"id":"rule2",
"sql":"SELECT * FROM stream1",
"actions":[
{
"log":{
}
}]
}
},
{
"url":"/rules",
"description":"list rule",
"method":"get"
},
{
"url":"/rules/rule1",
"description":"get rule1",
"method":"get"
},
{
"url":"/rules/rule2",
"description":"del rule2",
"method":"delete"
},
{
"url":"/rules/rule1/stop",
"description":"stop rule1",
"method":"post"
},
{
"url":"/rules/rule1/start",
"description":"start rule1",
"method":"post"
},
{
"url":"/rules/rule1/restart",
"description":"restart rule1",
"method":"post"
},
{
"url":"/rules/rule1/status",
"description":"get rule1 status",
"method":"get"
}]
}