You need to enable JavaScript to run this app.
导航
云机管理
最近更新时间:2024.10.29 19:42:44首次发布时间:2024.09.26 21:12:55
复制全文
我的收藏
有用
有用
无用
无用

阅读本文,您可以获取 Go SDK 云机管理的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 Go SDK 的安装及初始化操作。

调用示例

本节为您介绍云机管理相关接口的功能和调用示例。

查询云机列表 ListHost

您可以调用 ListHost 接口查询云机列表 ListHost。详细的参数说明可参见 ListHost 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func Int32Ptr(v int32) *int32 {
	return &v
}

func Int64Ptr(v int64) *int64 {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.ListHostQuery{
		// 业务 ID。可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1749281594201xxxxxx`,
		// 云机 ID。
		HostID: StringPtr(`7337159054625xxxxxx`),
		// 云机 ID 列表。多个云机 ID 使用英文 , 分隔。
		HostIDList: StringPtr(`7337159054625xxxxxx,7337159054626xxxxxx`),
		// 实例 ID。可通过调用 [ListPod](https://www.volcengine.com/docs/6394/1221468) 接口获取。
		PodID: StringPtr(`7332828319227xxxxxx`),
		// 云机状态列表。多个云机状态使用英文 , 分隔。取值如下:
		// <li> 0:初始化 </li>
		// <li> 1:正常 </li>
		// <li> 2:退订中 </li>
		// <li> 3:异常 </li>
		// <li> 4:重置中 </li>
		// <li> 5:重启中 </li>
		StatusList: StringPtr(`1,2,3`),
		// 机房 ID。
		Dc: StringPtr(`tjtj-ctcucm-02-xxxxxxxx`),
		// 云机所在的大区 ID。
		// <li> 当资源所在区域选择中国大陆,即 VolcRegion 设置为 inner 时,该参数可选值包含: </li>
		// <li> cn-north:华北 </li>
		// <li> cn-south:华南 </li>
		// <li> cn-east:华东 </li>
		// <li> cn-middle:华中 </li>
		// <li> cn-southwest:西南 </li>
		// <li> 当资源所在区域选择中国香港,即 VolcRegion 设置为 cn-hongkong-pop 时,该参数可选值为 cn-hongkong-pop。 </li>
		Region: StringPtr(`cn-north`),
		// 云手机实例规格 ID。取值如下:
		// <li> ultimate:旗舰型 </li>
		// <li> enhanced:加强型 </li>
		// <li> common:通用型 </li>
		// <li> sample:入门型 </li>
		// <li> basic:基础型 </li>
		// <li> elementary:低配型 </li>
		// <li> ultimatePlus:旗舰型Plus </li>
		// <li> enhancedPlus:加强型Plus </li>
		// <li> commonPlus:通用型Plus </li>
		// <li> samplePlus:入门型Plus </li>
		// <li> basicPlus:基础型Plus </li>
		// <li> elementaryPlus:低配型Plus </li>
		// 本地存储方案除上述 12 种规格外,还包含以下 6 个取值:
		// <li> ultimatePro:旗舰型Pro </li>
		// <li> enhancedPro:加强型Pro </li>
		// <li> commonPro:通用型Pro </li>
		// <li> samplePro:入门型Pro </li>
		// <li> basicPro:基础型Pro </li>
		// <li> elementaryPro:低配型Pro </li>
		ConfigurationCode: StringPtr(`ultimate`),
		// 资源所在的物理区域,包含以下选项:
		// inner:中国大陆(默认值)
		// cn-hongkong-pop:中国香港
		VolcRegion: StringPtr(`inner`),
		// 资源 ID。
		ResourceSetID: StringPtr(`Android_cloudxxxxx`),
		// 云机运维授权状态:
		// <li> 1:未授权; </li>
		// <li> 2:已授权。 </li>
		AuthorityStatus: Int32Ptr(1),
		// 实例 ID 列表,多个实例 ID 使用英文,分隔
		PodIDList: StringPtr(`7337159054625xxxxxx,7337159054626xxxxxx`),
		// 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 Offset 为 10,则表示从第 11 条记录开始。默认值为 0。
		// note:
		// 可与 Count 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。
		Offset: Int64Ptr(0),
		// 单次查询返回的最大记录数,用于控制每次查询返回的数据量。例如,若 Count 为 100,则表示在查询数据时,系统将每次返回 100 条记录。
		// note:
		// 可与 Offset 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。
		Count: Int64Ptr(10),
	}

	resp, err := service.ListHost(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

查询云机详情 DetailHost

您可以调用 DetailHost 接口查询云机详情 DetailHost。详细的参数说明可参见 DetailHost 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	query := &ACEP.DetailHostQuery{
		// 业务 ID。可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1749281594201xxxxxx`,
		// 云机 ID。可通过调用 [ListHost](https://www.volcengine.com/docs/6394/1221480) 接口获取。
		HostID: `7337159054625xxxxxx`,
	}

	resp, err := service.DetailHost(context.Background(), query)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

更新云机 UpdateHost

您可以调用 UpdateHost 接口更新云机 UpdateHost。详细的参数说明可参见 UpdateHost 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func StringPtr(v string) *string {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.UpdateHostBody{
		// 业务 ID。可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1749281594201xxxxxx`,
		// 云机上运行实例的规格 ID。取值如下:
		// <li> ultimate:旗舰型 </li>
		// <li> enhanced:加强型 </li>
		// <li> common:通用型 </li>
		// <li> sample:入门型 </li>
		// <li> basic:基础型 </li>
		// <li> elementary:低配型 </li>
		// <li> ultimatePlus:旗舰型Plus </li>
		// <li> enhancedPlus:加强型Plus </li>
		// <li> commonPlus:通用型Plus </li>
		// <li> samplePlus:入门型Plus </li>
		// <li> basicPlus:基础型Plus </li>
		// <li> elementaryPlus:低配型Plus </li>
		// 本地存储方案除上述 12 种规格外,还包含以下 6 个取值:
		// <li> ultimatePro:旗舰型Pro </li>
		// <li> enhancedPro:加强型Pro </li>
		// <li> commonPro:通用型Pro </li>
		// <li> samplePro:入门型Pro </li>
		// <li> basicPro:基础型Pro </li>
		// <li> elementaryPro:低配型Pro </li>
		ConfigurationCode: StringPtr(`ultimate`),
	}

	// 云机 ID 列表。可通过调用 [ListHost](https://www.volcengine.com/docs/6394/1221480) 接口获取。
	HostIDList := []string{"7337159054625xxxxxx", "7337159054626xxxxxx"}

	body.HostIDList = HostIDList

	resp, err := service.UpdateHost(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

重启云机 RebootHost

您可以调用 RebootHost 接口重启云机 RebootHost。详细的参数说明可参见 RebootHost 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func BoolPtr(v bool) *bool {
	return &v
}

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.RebootHostBody{
		// 业务 ID。可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1749281594201xxxxxx`,
		// 是否强制重启。取值如下:
		// <li> true:(默认)不会将云机实例主动关机。 </li>
		// <li> false:会将云机实例强制重启。 </li>
		Force: BoolPtr(true),
	}

	// 云机 ID 列表。可通过调用 [ListHost](https://www.volcengine.com/docs/6394/1221480) 接口获取。
	HostIDList := []string{"7337159054625xxxxxx", "7337159054626xxxxxx"}

	body.HostIDList = HostIDList

	resp, err := service.RebootHost(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}

重置云机 ResetHost

您可以调用 ResetHost 接口重置云机 ResetHost。详细的参数说明可参见 ResetHost 接口文档。

接口调用示例如下所示。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/volcengine/volc-sdk-golang/base"
	ACEP "github.com/volcengine/volc-sdk-golang/service/acep"
)

func main() {
	// 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
	// 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
	service := ACEP.NewInstance()

	service.SetCredential(base.Credentials{
		AccessKeyID:     os.Getenv("VOLC_ACCESSKEY"),
		SecretAccessKey: os.Getenv("VOLC_SECRETKEY"),
	})

	body := &ACEP.ResetHostBody{
		// 业务 ID。可在**云手机控制台 > 业务管理 > 业务详情**中获取。
		ProductID: `1749281594201xxxxxx`,
	}

	// 云机 ID 列表。可通过调用 [ListHost](https://www.volcengine.com/docs/6394/1221480) 接口获取。
	HostIDList := []string{"7337159054625xxxxxx", "7337159054626xxxxxx"}

	body.HostIDList = HostIDList

	resp, err := service.ResetHost(context.Background(), body)

	if err != nil {
		fmt.Printf("error %v", err)
	} else {
		fmt.Printf("success %+v", resp)
	}
}