云手机实例管理
引导式阅读
Go
云手机实例管理
作者
C***
上架时间
2023-11-14 06:55:37

场景介绍

基于华为云Python SDK,管理云手机实例。

具体操作包含:更新云手机名称;重置云手机;重启云手机;导出云手机数据;恢复云手机数据等

前提条件

1.已注册 华为云,并完成实名认证

2.获取华为云开发工具包(SDK),您也可以查看安装Python SDK。

3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见访问密钥

4.已获取华为云账号对应的Endpoint和Project Id。Endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点 ;Project ID是云服务所在项目ID,根据你想操作的项目所属区域选择对应的项目ID。

5.已具备开发环境,支持Python3及其以上版本。

版本说明

您可以通过加入相应的依赖项获取和安装SDK。

pip install huaweicloudsdkcph

代码示例

from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions.exceptions import ConnectionException from huaweicloudsdkcore.exceptions.exceptions import RequestTimeoutException from huaweicloudsdkcore.exceptions.exceptions import ServiceResponseException from huaweicloudsdkcore.http.http_config import HttpConfig from huaweicloudsdkcph.v1.cph_client import CphClient from huaweicloudsdkcph.v1.model.batch_export_cloud_phone_data_request import BatchExportCloudPhoneDataRequest from huaweicloudsdkcph.v1.model.batch_export_cloud_phone_data_request_body import BatchExportCloudPhoneDataRequestBody from huaweicloudsdkcph.v1.model.batch_export_cloud_phone_data_request_body_storage_infos import BatchExportCloudPhoneDataRequestBodyStorageInfos from huaweicloudsdkcph.v1.model.batch_import_cloud_phone_data_request import BatchImportCloudPhoneDataRequest from huaweicloudsdkcph.v1.model.batch_import_cloud_phone_data_request_body import BatchImportCloudPhoneDataRequestBody from huaweicloudsdkcph.v1.model.batch_import_cloud_phone_data_request_body_restore_infos import BatchImportCloudPhoneDataRequestBodyRestoreInfos from huaweicloudsdkcph.v1.model.reset_cloud_phone_request import ResetCloudPhoneRequest from huaweicloudsdkcph.v1.model.reset_restart_request_body import ResetRestartRequestBody from huaweicloudsdkcph.v1.model.reset_restart_request_body_phones import ResetRestartRequestBodyPhones from huaweicloudsdkcph.v1.model.restart_cloud_phone_request import RestartCloudPhoneRequest from huaweicloudsdkcph.v1.model.update_phone_name_request import UpdatePhoneNameRequest from huaweicloudsdkcph.v1.model.update_phone_name_request_body import UpdatePhoneNameRequestBody import os class CloudPhoneManagement: def __init__(self): pass @staticmethod def main(args): # 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.environ["HUAWEICLOUD_SDK_AK"] sk = os.environ["HUAWEICLOUD_SDK_SK"] endpoint = "{endpoint}" project_id = "{project id}" auth = BasicCredentials( ak=ak, sk=sk, project_id=project_id ) config = HttpConfig.get_default_config() config.ignore_ssl_verification = True config.proxy_protocol = "http" client = CphClient.new_builder() \ .with_credentials(credentials=auth) \ .with_endpoint(endpoint=endpoint) \ .with_http_config(config=config) \ .build() # 修改云手机名称 CloudPhoneManagement.__update_phone_name(client) # 重置云手机 CloudPhoneManagement.__reset_cloud_phone(client) # 重启云手机 CloudPhoneManagement.__restart_cloud_phone(client) # 批量导出云手机数据 CloudPhoneManagement.__batch_export_cloud_phone_data(client) # 批量恢复数据到云手机 CloudPhoneManagement.__batch_import_cloud_phone_data(client) @staticmethod def __update_phone_name(client): request = UpdatePhoneNameRequest() request.phone_id = "{phone_id}" body = UpdatePhoneNameRequestBody() body.phone_name = "{phone_name}" request.body = body try: response = client.update_phone_name(request) print(response) except ConnectionException as e: print(e.err_message) except RequestTimeoutException as e: print(e.err_message) except ServiceResponseException as e: print(e.status_code) print(e.error_code) print(e.error_msg) @staticmethod def __reset_cloud_phone(client): request = ResetCloudPhoneRequest() body = ResetRestartRequestBody() phones = [] phones.append( ResetRestartRequestBodyPhones( phone_id="{phone_id}", property="{property}" ) ) body.phones = phones body.image_id = "{image_id}" request.body = body try: response = client.re_cloud_phone = request print(response) except ConnectionException as e: print(e.err_message) except RequestTimeoutException as e: print(e.err_message) except ServiceResponseException as e: print(e.status_code) print(e.error_code) print(e.error_msg) @staticmethod def __restart_cloud_phone(client): request = RestartCloudPhoneRequest() body = ResetRestartRequestBody() phones = [] phones.append( ResetRestartRequestBodyPhones( phone_id="{phone_id}", property="{property}" ) ) body.phones = phones body.image_id = "{image_id}" request.body = body try: response = client.restart_cloud_phone(request) print(response) except ConnectionException as e: print(e.err_message) except RequestTimeoutException as e: print(e.err_message) except ServiceResponseException as e: print(e.status_code) print(e.error_code) print(e.error_msg) @staticmethod def __batch_export_cloud_phone_data(client): request = BatchExportCloudPhoneDataRequest() body = BatchExportCloudPhoneDataRequestBody() list_storage_infos_exclude_files = [] list_storage_infos_exclude_files.append("{exclude_files}") list_storage_infos_include_files = [] list_storage_infos_include_files.append("{include_files}") storage_infos = [] storage_infos.append( BatchExportCloudPhoneDataRequestBodyStorageInfos( phone_id="{phone_id}", include_files=list_storage_infos_include_files, exclude_files=list_storage_infos_exclude_files, bucket_name="{bucket_name}", object_path="{object_path}" ) ) body.storage_infos = storage_infos request.body = body try: response = client.batch_export_cloud_phone_data(request) print(response) except ConnectionException as e: print(e.err_message) except RequestTimeoutException as e: print(e.err_message) except ServiceResponseException as e: print(e.status_code) print(e.error_code) print(e.error_msg) @staticmethod def __batch_import_cloud_phone_data(client): request = BatchImportCloudPhoneDataRequest() body = BatchImportCloudPhoneDataRequestBody() restore_infos = [] restore_infos.append( BatchImportCloudPhoneDataRequestBodyRestoreInfos( phone_id="{phone_id}", bucket_name="{bucket_name}", object_path="{object_path}" ) ) body.restore_infos = restore_infos request.body = body try: response = client.batch_import_cloud_phone_data(request) print(response) except ConnectionException as e: print(e.err_message) except RequestTimeoutException as e: print(e.err_message) except ServiceResponseException as e: print(e.status_code) print(e.error_code) print(e.error_msg) if __name__ == "__main__": CloudPhoneManagement().main(any)

您可以在API Explorer中直接运行调试该接口。

修订记录

发布日期 文档版本 修订说明
2022-08-20 1.0 文档首次发布