119 lines
3.6 KiB
Go
119 lines
3.6 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
|
|
"github.com/aliyun/alibaba-cloud-sdk-go/services/slb"
|
|
)
|
|
|
|
// LTAI5tCB8SmJcwfO
|
|
// dX4kgF4VcblsbCVdKvtCGCmvNbLkZK
|
|
// ./AliyunCloudClient -t b -o update -key LTAI5tCB8SmJcwfO -sec dX4kgF4VcblsbCVdKvtCGCmvNbLkZK -reg cn-hangzhou -lb "[{"ServerId":"ServerId","Weight":"0"}]
|
|
func main() {
|
|
var target string
|
|
flag.StringVar(&target, "t", "b", "target: b=backendServer")
|
|
var operation string
|
|
flag.StringVar(&operation, "o", "update", "operation: add、update、remove")
|
|
var accessKeyId string
|
|
flag.StringVar(&accessKeyId, "key", "accessKeyId", "accessKeyId")
|
|
var accessSecret string
|
|
flag.StringVar(&accessSecret, "sec", "accessSecret", "accessSecret")
|
|
var regionId string
|
|
flag.StringVar(®ionId, "reg", "regionId", "regionId: cn-hangzhou")
|
|
var loadBalancerId string
|
|
flag.StringVar(&loadBalancerId, "lb", "loadBalancerId", "loadBalancerId")
|
|
var params string
|
|
flag.StringVar(¶ms, "params", "", `SetBackendServers: [{"ServerId":"ServerId","Weight":"0"}]
|
|
AddBackendServers: [{"ServerId":"ServerId","Weight":"100","Type":"eni","ServerIp":"192.168.11.1"}]
|
|
RemoveBackendServers: [{"ServerId":"ServerId","Weight":"100"}]
|
|
`)
|
|
flag.Parse()
|
|
flag.Usage()
|
|
fmt.Printf("target=%s,operation=%s,accessKeyId=%s,accessSecret=%s,regionId=%s,loadBalancerId=%s,params=%s", target, operation, accessKeyId, accessSecret, regionId, loadBalancerId, params)
|
|
if target == "b" {
|
|
switch operation {
|
|
case "update":
|
|
SetBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params)
|
|
break
|
|
case "add":
|
|
AddBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params)
|
|
break
|
|
case "remove":
|
|
RemoveBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params)
|
|
break
|
|
default:
|
|
fmt.Println("operation: " + operation + " not support")
|
|
}
|
|
} else {
|
|
fmt.Println("target: " + target + " not support")
|
|
}
|
|
}
|
|
|
|
func SetBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params string) {
|
|
// client, err := slb.NewClientWithAccessKey(regionId, accessKeyId, accessSecret)
|
|
// if nil != err {
|
|
// fmt.Println("get client error:")
|
|
// fmt.Println(err.Error())
|
|
// }
|
|
|
|
// request := slb.CreateSetBackendServersRequest()
|
|
// request.Scheme = "https"
|
|
|
|
// request.LoadBalancerId = loadBalancerId
|
|
// request.BackendServers = params
|
|
|
|
// if nil == client {
|
|
// fmt.Println("error: client is nil")
|
|
// return
|
|
// }
|
|
// response, err := client.SetBackendServers(request)
|
|
// if err != nil {
|
|
// fmt.Print(err.Error())
|
|
// }
|
|
// fmt.Printf("response is %#v\n", response)
|
|
}
|
|
|
|
func AddBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params string) {
|
|
client, err := slb.NewClientWithAccessKey(regionId, accessKeyId, accessSecret)
|
|
|
|
request := slb.CreateAddBackendServersRequest()
|
|
request.Scheme = "https"
|
|
|
|
request.LoadBalancerId = loadBalancerId
|
|
request.BackendServers = params
|
|
|
|
if nil == client {
|
|
fmt.Println("error: client is nil")
|
|
return
|
|
}
|
|
|
|
response, err := client.AddBackendServers(request)
|
|
if err != nil {
|
|
fmt.Print(err.Error())
|
|
}
|
|
fmt.Printf("response is %#v\n", response)
|
|
}
|
|
|
|
func RemoveBackendServers(regionId, accessKeyId, accessSecret, loadBalancerId, params string) {
|
|
|
|
client, err := slb.NewClientWithAccessKey(regionId, accessKeyId, accessSecret)
|
|
|
|
request := slb.CreateRemoveBackendServersRequest()
|
|
request.Scheme = "https"
|
|
|
|
request.LoadBalancerId = loadBalancerId
|
|
request.BackendServers = params
|
|
|
|
if nil == client {
|
|
fmt.Println("error: client is nil")
|
|
return
|
|
}
|
|
|
|
response, err := client.RemoveBackendServers(request)
|
|
if err != nil {
|
|
fmt.Print(err.Error())
|
|
}
|
|
fmt.Printf("response is %#v\n", response)
|
|
}
|