本节介绍如何快速使用OOS Go SDK完成常见操作,如创建模板、启动执行、查询执行等。
创建模板
以下代码用于创建模板:
package main
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/oos"
)
var client, err = oos.NewClientWithAccessKey("cn-hangzhou", "<AccessKeyId>", "<AccessKeySecret>")
var content = `
{
"FormatVersion": "OOS-2019-06-01",
"Description": "Descirbe instances of given status",
"Parameters": {
"Status": {
"Type": "String",
"Description": "(Required) The status of the Ecs instance."
}
},
"Tasks": [
{
"Properties": {
"Parameters": { "Status": "{{ Status }}" },
"API": "DescribeInstances",
"Service": "ECS"
},
"Name": "describeInstances",
"Action": "ACS::ExecuteAPI"
}
]
}`
func CreateTemplate(name string, content string) (response *oos.CreateTemplateResponse, err error) {
request := oos.CreateCreateTemplateRequest()
request.TemplateName = name
request.Content = content
response, err = client.CreateTemplate(request)
return
}
func main() {
response, err := CreateTemplate("MyTemplate", content)
fmt.Println(response)
fmt.Println(err)
}
启动执行
以下代码用于启动执行:
package main
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/oos"
)
var client, err = oos.NewClientWithAccessKey("cn-hangzhou", "<AccessKeyId>", "<AccessKeySecret>")
func StartExecution(templateName string, parameters string) (response *oos.StartExecutionResponse, err error) {
request := oos.CreateStartExecutionRequest()
request.TemplateName = templateName
request.Parameters = parameters
response, err = client.StartExecution(request)
return
}
func main() {
response, err := StartExecution("MyTemplate", "{\"Status\": \"Running\"}")
fmt.Println(response)
fmt.Println(err)
}
查询执行
以下代码用于查询执行:
package main
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/oos"
)
var client, err = oos.NewClientWithAccessKey("cn-hangzhou", "<AccessKeyId>", "<AccessKeySecret>")
func ListExecutions(executionId string) (response *oos.ListExecutionsResponse, err error) {
request := oos.CreateListExecutionsRequest()
request.ExecutionId = executionId
response, err = client.ListExecutions(request)
return
}
func main() {
response, err := ListExecutions("<ExecutionId>")
fmt.Println(response)
fmt.Println(err)
}