成为Golang的新手(实际上几天前就开始学习它)我有一个关于创建用于使用SL API的客户端代码的基本问题。
所以我的要求是使用Golang调用createsnapshot SL API,它将获取我的耐久性卷的快照,前提是volume id是它的输入参数。你能帮我写一下这个客户的示例代码吗?
我知道如何在python中做到这一点,这就是我如何做到python,但现在我想在golang(改变请求。你知道;))
python代码段:
client = SoftLayer.create_client_from_env("softlayer username", "softlayer apikey")
result = client['SoftLayer_Network_Storage'].createSnapshot("snapshot_name", "volume id")
谢谢你!
答案 0 :(得分:3)
如果我没有误解,你正在使用Python的Softlayer包来执行你在给定代码中所做的事情。
Softlayer也有官方go包[{3}}
通过
在go环境中下载软件包去github.com/softlayer/softlayer-go /...
然后在您的应用程序中导入他的包并使用它。
基本示例:
// 1. Create a session
sess := session.New(username, apikey)
// 2. Get a service
accountService := services.GetAccountService(sess)
// 3. Invoke a method:
account, err := accountService.GetObject()
您需要找到适合您的方法。
答案 1 :(得分:1)
请尝试以下脚本:
// Create Snapshot
//
// This script creates a snapshot for storage
//
// See below references for more details.
// important manual pages:
// http://sldn.softlayer.com/reference/services/SoftLayer_Network_Storage/createSnapshot
// @License: http://sldn.softlayer.com/article/License
// @Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
package main
import (
"fmt"
"github.com/softlayer/softlayer-go/services"
"github.com/softlayer/softlayer-go/session"
"encoding/json"
)
func main() {
username := "set me"
apikey := "set me"
storageId := 21015123
notes := "test"
// 1. Create a session
sess := session.New(username, apikey)
// 2. Get a service
service := services.GetNetworkStorageService(sess)
result, err := service.Id(storageId).CreateSnapshot(¬es)
if err != nil {
fmt.Printf("%s\n", err)
return
}
res, errMarsh := json.Marshal(result)
if errMarsh != nil {
fmt.Println(errMarsh)
return
}
fmt.Println(string(res))
}
替换:用户名,apikey,storageId和包含您自己信息的备注。
<强>参考文献:强>