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 的安装及初始化操作。

调用示例

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

查询镜像信息 ListImage

您可以调用 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。详细的参数说明可参见 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。详细的参数说明可参见 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。详细的参数说明可参见 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)
	}
}