You need to enable JavaScript to run this app.
导航
实例属性管理
最近更新时间:2024.10.29 19:42:44首次发布时间:2024.10.14 20:29:01
复制全文
我的收藏
有用
有用
无用
无用

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

说明

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

调用说明

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

前提条件

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

调用示例

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

修改实例属性 UpdatePodProperty

您可以调用 UpdatePodProperty 接口修改实例属性 UpdatePodProperty。详细的参数说明可参见 UpdatePodProperty 接口文档。

接口调用示例如下所示。

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 StringPtrs(vals []string) []*string {
	ptrs := make([]*string, len(vals))
	for i := 0; i < len(vals); i++ {
		ptrs[i] = &vals[i]
	}
	return ptrs
}

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.UpdatePodPropertyBody{
		// 实例所归属的业务 ID,可在云手机控制台-业务管理-业务详情中获取。
		ProductID: `1591495366954xxxxxx`,
		// 实例 ID,可通过调用 [ListPod](https://www.volcengine.com/docs/6394/1221468) 接口获取。
		// 若仅需更新**单个**实例的属性,请使用该参数。
		// > 批量操作实例更新属性,请使用 PodIdList 参数。
		PodID: StringPtr(`7294157141458xxxxxx`),
		// 预设的机型参数名称。
		// 创建实例时,若通过 UsePropertyRule 参数选择使用预设机型,可通过该参数对机型进行修改。机型参数列表可通过 ListPropertyRule 接口获取。
		PropertyRuleName: StringPtr(`HW`),
	}

	// 实例 ID 列表,若需一次性更新**多个**实例的属性,请使用该参数。支持批量操作的实例数上限为 200。
	// > 更新单个实例属性,请使用PodId 参数。
	PodIDList := []string{"[7294157141458xxxxxx,72941579891458xxxxxx]"}

	body.PodIDList = StringPtrs(PodIDList)

	// 实例 Settings 属性列表。参看 [Settings](#settings) 数据结构说明。
	PodSettings1 := ACEP.UpdatePodPropertyBodyPodSettingsItem{
		// 属性名称,已可修改的 Settings 属性及属性值,参考 [Settings 属性列表](https://www.volcengine.com/docs/6394/671880#settings-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		SettingsName: `locale_language`,
		// 设置类型,取值如下:
		// <li> global </li>
		// <li> secure </li>
		// <li> system </li>
		SettingsType: `global`,
		// 属性值。各类型属性取值示例如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		SettingsValue: `on`,
		// 属性值数据类型,取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SettingsValueType: `string`,
	}

	body.PodSettings = append(body.PodSettings, &PodSettings1)

	// 实例系统属性列表,非持久化,立即生效,重启实例后失效。参看 [SystemProperty](#systemproperty) 数据结构说明。
	PodProperties1 := ACEP.UpdatePodPropertyBodyPodPropertiesItem{
		// 属性名称,已可修改的系统属性及属性值,参考 [System Properties 属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)。
		SystemPropertyName: `ro.product.name`,
		// 属性值。取值如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		// note:
		// 当 SystemPropertyValueType 参数取值不同,该 SystemPropertyValue 参数对应的取值不同。
		SystemPropertyValue: `samsung`,
		// 属性值数据类型。取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SystemPropertyValueType: `string`,
	}

	body.PodProperties = append(body.PodProperties, &PodProperties1)

	// 实例系统属性列表,持久化,立即生效,重启实例后持久化保存。参看 [SystemProperty](#systemproperty) 数据结构说明。
	PodPersistProperties1 := ACEP.UpdatePodPropertyBodyPodPersistPropertiesItem{
		// 属性名称,已可修改的系统属性及属性值,参考 [System Properties 属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)。
		SystemPropertyName: `ro.product.name`,
		// 属性值。取值如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		// note:
		// 当 SystemPropertyValueType 参数取值不同,该 SystemPropertyValue 参数对应的取值不同。
		SystemPropertyValue: `samsung`,
		// 属性值数据类型。取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SystemPropertyValueType: `string`,
	}

	body.PodPersistProperties = append(body.PodPersistProperties, &PodPersistProperties1)

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

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

查询实例属性列表 GetPodProperty

您可以调用 GetPodProperty 接口查询实例属性列表 GetPodProperty。详细的参数说明可参见 GetPodProperty 接口文档。

接口调用示例如下所示。

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.GetPodPropertyQuery{
		// 实例所属的业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。
		ProductID: `1591495366954xxxxxx`,
		// 实例 ID,可通过调用 ListPod 接口获取。
		PodID: `7235890322201xxxxxx`,
		// 筛选条件,secure 类型 setting 名称列表,多个属性名称以英文逗号分隔;可查询的 setting 名称,参考 [云手机实例属性列表](https://www.volcengine.com/docs/6394/671880#settings-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		SettingSecureNameList: StringPtr(`location_mode`),
		// 筛选条件,global 类型 setting 名称列表,多个属性名称以英文逗号分隔;可查询的 setting 名称,参考 [云手机实例属性列表](https://www.volcengine.com/docs/6394/671880#settings-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		SettingGlobalNameList: StringPtr(`settings.install_whitelist`),
		// 筛选条件,system 类型 setting 名称列表,多个属性名称以英文逗号分隔;可查询的 setting 名称,参考 [云手机实例属性列表](https://www.volcengine.com/docs/6394/671880#settings-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		SettingSystemNameList: StringPtr(`launcher3_remove_drawer`),
		// 筛选条件,非持久化属性列表,多个属性名称以英文逗号分隔;可查询的非持久化属性,参考 [云手机实例属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		PropertyNameList: StringPtr(`ro.product.device`),
		// 筛选条件,持久化属性列表,多个属性名称以英文逗号分隔;可查询的持久化属性,参考 [云手机实例属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		PersistPropertyNameList: StringPtr(`ro.product.model`),
	}

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

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

创建机型参数规则 AddPropertyRule

您可以调用 AddPropertyRule 接口创建机型参数规则 AddPropertyRule。详细的参数说明可参见 AddPropertyRule 接口文档。

接口调用示例如下所示。

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.AddPropertyRuleBody{
		// 机型参数规则名称,账户下规则名称唯一,长度不能超过 200 个字符。
		RuleName: `Oppo1`,
	}

	// 实例 Settings 系统属性,非持久化,立即生效,重启实例后失效;详细信息,参考 [SystemProperty](#systemproperty) 定义。
	OverlayProperty1 := ACEP.AddPropertyRuleBodyOverlayPropertyItem{
		// 属性名称,已可修改的系统属性及属性值,参考 [System Properties 属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)。
		SystemPropertyName: `ro.product.name`,
		// 属性值。取值如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		// note:
		// 当 SystemPropertyValueType 参数取值不同,该 SystemPropertyValue 参数对应的取值不同。
		SystemPropertyValue: `samsung`,
		// 属性值数据类型。取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SystemPropertyValueType: `string`,
	}

	body.OverlayProperty = append(body.OverlayProperty, &OverlayProperty1)

	// 实例初始化系统属性,持久化,重启实例后生效;详细信息,参考 [SystemProperty](#systemproperty ) 定义:适用于只读系统属性,或 AOSP 原生非持久化的系统属性的修改,如 ro.product.model。
	OverlayPersistProperty1 := ACEP.AddPropertyRuleBodyOverlayPersistPropertyItem{
		// 属性名称,已可修改的系统属性及属性值,参考 [System Properties 属性列表](https://www.volcengine.com/docs/6394/671880#system-properties-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)。
		SystemPropertyName: `ro.product.name`,
		// 属性值。取值如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		// note:
		// 当 SystemPropertyValueType 参数取值不同,该 SystemPropertyValue 参数对应的取值不同。
		SystemPropertyValue: `samsung`,
		// 属性值数据类型。取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SystemPropertyValueType: `string`,
	}

	body.OverlayPersistProperty = append(body.OverlayPersistProperty, &OverlayPersistProperty1)

	// 实例 Settings 属性列表;详细信息,参考 [Settings](#settings) 定义。
	OverlaySettings1 := ACEP.AddPropertyRuleBodyOverlaySettingsItem{
		// 属性名称,已可修改的 Settings 属性及属性值,参考 [Settings 属性列表](https://www.volcengine.com/docs/6394/671880#settings-%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8)
		SettingsName: `locale_language`,
		// 设置类型,取值如下:
		// <li> global </li>
		// <li> secure </li>
		// <li> system </li>
		SettingsType: `global`,
		// 属性值。各类型属性取值示例如下:
		// <li> bool: "true"、"false" </li>
		// <li> intlong: "21312" </li>
		// <li> float: "2131.09" </li>
		// <li> string: "safehg" </li>
		SettingsValue: `on`,
		// 属性值数据类型,取值如下:
		// <li> int </li>
		// <li> long </li>
		// <li> string </li>
		// <li> float </li>
		// <li> bool </li>
		SettingsValueType: `string`,
	}

	body.OverlaySettings = append(body.OverlaySettings, &OverlaySettings1)

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

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

查询机型参数规则列表 ListPropertyRule

您可以调用 ListPropertyRule 接口查询机型参数规则列表 ListPropertyRule。详细的参数说明可参见 ListPropertyRule 接口文档。

接口调用示例如下所示。

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.ListPropertyRuleQuery{
		// 机型参数规则名称,账户下规则名称唯一
		RuleName: StringPtr(`Oppo1`),
		// 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 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.ListPropertyRule(context.Background(), query)

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

移除机型参数规则 RemovePropertyRule

您可以调用 RemovePropertyRule 接口移除机型参数规则 RemovePropertyRule。详细的参数说明可参见 RemovePropertyRule 接口文档。

接口调用示例如下所示。

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.RemovePropertyRuleBody{
		// 需要移除的机型参数规则名称,可通过 ListPropertyRule 获取。
		RuleName: `Oppo1`,
	}

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

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