支持 Dnspod 进行两厂商闲时和非闲时自动切换功能
该工具使用的前置条件如下所示:
1.1.使用者必须有访问https://www.dnspod.cn 的权限,也就是说,必须要有API Token, 格式为: ID,Token 组合而成的,用英文的逗号分割。
申请方法参考:https://support.dnspod.cn/Kb/showarticle/tsid/227/
权限一:同一个域名下面可以配置2条以上记录的权限; 权限二:域名对应的记录上面可以更改权重的权限。
该工具支持立即切量和定时切量两种方式,同时还可以按照灰度的方式进行切换。备注:灰度指的是,在一定的时间内,可以每隔一段时间切换一部分量到目标CDN厂商。
表示的是,在执行工具后,会按照配置规则,立马执行切量的操作。 有两种方式可选: 第一种,立马100切到目标CDN厂商; 另一种,按照一个固定的时间粒度,去灰度切量,例子: 时间粒度是 5分钟,切向目标厂商时间假设为9:00,会按照下面的规则切量:9:00 切量5%到目标厂商,9:05切量15%,9:10切量30%,9:15切量50%,9:20切量75%,9:25切量100%。
表示的是,一天之内,到了指定的切向目标厂商的时间之后,自动执行向目标厂商的切量操作;到了指定的切回源厂商的时间之后,自动执行切回源厂商的操作。同样支持立马100切量和灰度切量两种方式。 例子: 切向目标厂商T的时间为24:00:00,切回源厂商S的时间为9:00:00,灰度切换的时间粒度为5分钟。
{
"apitoken":"id,token", // 用户名的apitoken, id,token构成
"partlyscale":true, // 灰度切量标识,true表示灰度切量,false表示立即切量
"timely":true, // 是否定时切量标识,true表示定时切量,false表示立即切量
"scalein":true, // 是否向目标厂商切量的标识,true表示向目标厂商切量,false表示的是切回源厂商。备注:这个标识只有在timely是false的情况下生效
"start-time": { // 源厂商向目标厂商切量的定时时间,例如 24:00:00,那么hour:24,min:0,sec:0
"hour": 10,
"min": 20,
"sec":0
},
"end-time": { // 目标厂商向源厂商切量的定时时间,例如 9:00:00,那么hour:9,min:0,sec:0
"hour": 10,
"sec":0
},
"time-rate":5 //灰度切量的时间粒度,单位是秒,5表示的是5秒。
}
{ // 可以配置单个域名,也可以配置多个域名,多个域名会并发执行
"cnames":[
{
"zone":"baidu.com",// 域名的后缀,一般有两个或三个,例如baidu.com和pud.edu.cn
"domain":"findback.test.baidu.com", // 需要切量的整个域名名称
"view":"华东", // Dnspod上面的线路类型,例如:默认,华东,上海移动,上海电信等等
"from":"test-ali.ali.com", // 源厂商的cname名称
"to":"test-baidu.baidu.com" // 目标厂商的cname名称
}
]
}
go clone git@github.com:dagedaniao/AutoScaleDnspodTool.git
go build,会生成可执行文件AutoScaleDnspodTool
service.conf 和 rule.conf
./AutoScaleDnspodTool