SDK远程登录ECI实例
更新时间 2026-01-15 18:47:25
最近更新时间: 2026-01-15 18:47:25
本文为您介绍如何使用SDK远程登录ECI实例。
使用ECI SDK提供的示例代码,执行execCommand命令。
注入AK/SK环境变量
SDK调用依赖用户AK/SK,请从官网获取。
var (
accessKey = ""
secretKey = ""
baseDomain = "https://eci-global.ctapi.ctyun.cn"
)
func init() {
accessKey = os.Getenv("CTAPI_AK")
secretKey = os.Getenv("CTAPI_SK")
domain := os.Getenv("CTAPI_ECI_DOMAIN")
if domain != "" {
baseDomain = domain
}
}初始化客户端
func main() {
config := &config.OpenapiConfig{
AccessKey: accessKey,
SecretKey: secretKey,
}
options := []eci.Option{
eci.WithClientConfig(config),
eci.WithClientOption(cli.WithTLSConfig(&tls.Config{
InsecureSkipVerify: true,
})),
}
client, err := eci.NewClientSet(baseDomain, options...)
if err != nil {
fmt.Println(err)
return
}
ctx := context.Background()
req := &containergroup.ExecCommandRequest{
// Fill in the request parameters
ContainerGroupId: "eci-vtyz7dxommh6wna4",
ContainerName: "container-1",
Command: []string{"/bin/sh"},
TTY: true,
Stdin: true,
Sync: false,
RegionId: "bb9fdb42056f11eda1610242ac110002",
}
resp, raw, err := client.ContainerGroup().ExecCommand(ctx, req)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("raw: %v\nresp: %v\n", string(raw.Body()), resp)连接WebSocket
if err := execContainerWebsocket(resp.RequestId, resp.WebSocketUri); err != nil {
fmt.Println(err)
}
}