阅读本文,您可以获取 Go SDK 镜像管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Go SDK 的安装及初始化操作。
本节为您介绍镜像管理相关接口的功能和调用示例。
您可以调用 ListImage 接口查询镜像信息 ListImage。详细的参数说明可参见 ListImage 接口文档。
接口调用示例如下所示。
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 BoolPtr(v bool) *bool { 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.ListImageQuery{ // 火山引擎账号 ID。 AccountID: `21000xxxx`, // 镜像 ID。可以指定单个需要查询的镜像。 ImageID: StringPtr(`img-xxxxx1`), // 镜像 ID 列表,可以指定多个需要查询的镜像,以英文逗号","分割。 ImageIDList: StringPtr(`img-xxxxx2,img-xxxxx3`), // 镜像名称 ImageName: StringPtr(`image-1459450162840xxxxxx`), // 镜像版本,包含以下取值: // <li> 10:AOSP 10; </li> // <li> 11:AOSP 11。 </li> AospVersion: StringPtr(`10`), // 是否查找公共镜像,包含以下取值: // <li> true:查找公共镜像; </li> // <li> false:(默认值)用户自定义镜像。 </li> IsPublic: BoolPtr(false), // 镜像状态,包含以下取值: // <li> 0:未知; </li> // <li> 1:导入中,待构建; </li> // <li> 2:构建中; </li> // <li> 11:构建完成; </li> // <li> -1:构建失败。 </li> ImageStatus: Int32Ptr(11), // 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 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), // 是否查询未发布的公共镜像,包含以下取值: // <li> true:是,此时需要提供准确的 ImageId; </li> // <li> false:(默认值)否,只查询已发布的公共镜像 </li> ExpandScope: BoolPtr(false), // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: StringPtr(`1591495366954xxxxxx`), } resp, err := service.ListImage(context.Background(), query) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 ListImageResource 接口查询镜像分布 ListImageResource。详细的参数说明可参见 ListImageResource 接口文档。
接口调用示例如下所示。
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 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.ListImageResourceQuery{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取 ProductID: `1749281594201xxxxxx`, // 指定需要查询的镜像 ID 列表。多个镜像 ID 使用英文 "," 分隔。 // 该参数置空时,系统将默认返回业务下所有镜像 ID 的分布情况。 ImageIDList: StringPtr(`img-xxxxx1,img-xxxxx2`), // 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 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.ListImageResource(context.Background(), query) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 GetImagePreheating 接口查询镜像预热信息 GetImagePreheating。详细的参数说明可参见 GetImagePreheating 接口文档。
接口调用示例如下所示。
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"), }) query := &ACEP.GetImagePreheatingQuery{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取 ProductID: `1749281594201xxxxxx`, // 指定需要查询的镜像 ID 列表。多个镜像 ID 使用英文 "," 分隔。列表最大长度为 100。 ImageIDList: `img-xxxxx1,img-xxxxx2`, // 机房 ID。用于指定希望查询的镜像所在的特定机房。若该参数置空,系统将默认返回所有机房中的指定镜像的预热数据。 DcID: StringPtr(`gdsz-ctcucm-01-xxxxx`), } resp, err := service.GetImagePreheating(context.Background(), query) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 CreateImageOneStep 接口镜像内置应用 CreateImageOneStep。详细的参数说明可参见 CreateImageOneStep 接口文档。
接口调用示例如下所示。
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.CreateImageOneStepBody{ // 云手机业务ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: `1591495366954xxxxxx`, // 镜像 ID,作为构建自定义镜像的基线或基准镜像。 ImageID: `test_image`, // 镜像名称,由用户自定义,用于业务标识。 // 支持英文、中文字符、数字和下划线,需以英文或中文开头,长度不超过 128 个字符。 // 如不指定,则使用默认名称,格式为 “公共镜像 ID+AOSP 镜像版本+账号 ID+自定义镜像”。 ImageName: StringPtr(`测试镜像`), // 镜像描述信息,由用户按需添加镜像备注说明,便于业务识别。 ImageAnnotation: StringPtr(`测试镜像`), // 需要内置的应用或文件的下载地址;内置的文件需按照固定格式提供整体压缩包文件,文件名需为 file.zip。详请参考[预置应用或文件上传说明](https://www.volcengine.com/docs/6394/1181814#%E9%A2%84%E7%BD%AE%E5%BA%94%E7%94%A8%E6%88%96%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AF%B4%E6%98%8E)。 FileURL: StringPtr(`http://file.bytetos.com/cloudphone/file.zip`), } resp, err := service.CreateImageOneStep(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }