本文介绍如何通过云手机服务端 OpenAPI 实现实例数据的备份与恢复。
服务端 OpenAPI 内置实例数据备份与恢复相关接口(详情参见数据备份与恢复),使用这些接口,可以为云手机实例做数据备份,在人为操作、系统故障等原因导致关键数据丢失的场景,为实例恢复数据。此外,备份后的数据可用于创建新的实例,以实现快速搭建多个相同配置实例的目的。
说明
云手机服务端 OpenAPI 提供了实例迁移备份接口和实例数据备份接口,两者的区别可参见备份实例 BackupPod 和 备份数据 BackupData 有什么区别。
/data 路径下数据。/data 目录下自定义了 1.txt、2.txt、3.txt 文件,用于校验数据备份是否成功。调用备份数据 BackupData 接口备份测试实例的数据。调用时传入的请求参数如下:
响应结果示例如下:
注意
成功调用接口备份实例数据后,您需要保存响应结果数据,其中的响应参数用于调用其他接口。
{ "ResponseMetadata": { "Action": "BackupData", "Region": "cn-beijing", "RequestId": "2025110716064135000FF877AD****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "TaskIdList": [ "756989176109561****" ], "Details": [ { "TaskId": "756989176109561****", "JobId": "job-756989176109561****-756989046484640****", "PodId": "756989046484640****", "BackupDataId": "756989176109562****" } ] } }
调用查询备份数据 ListBackupData 接口,查询已备份的数据信息。调用时传入的请求参数如下:
说明
如需查询指定备份数据的信息,可传入 BackupDataIdList 参数。例如,将步骤一获取的 BackupDataId 响应参数传入查询。
响应结果示例如下,其中 Status 参数表示备份数据状态,取值 completed(备份完成)才可用于恢复数据。
{ "ResponseMetadata": { "Action": "ListBackupData", "Region": "cn-beijing", "RequestId": "2025110716221436CD799D8DE5****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "NextToken": "", "Rows": [ { "BackupDataId": "756989176109562****", "BackupDataName": "756989176109562****", "Description": "", "AccountId": "210013****", "ProductId": "198670449019506****", "SourcePodId": "756989046484640****", "BackupTaskId": "756989176109561****", "BackupJobId": "job-756989176109561****-756989046484640****", "Status": "completed", "Detail": "Backup Task finished, written 19324451 bytes(total 53448063 bytes backup data), using 0.652 seconds", "DataSize": 53448063, "BackupSize": 20971520, "Md5Sum": "", "AOSPVersion": "10", "BackupType": "Full", "CompressionType": "zstd", "StorageType": "ceph", "StorageResource": "{\"FsType\": \"ext4\", \"ZoneID\": \"****\", ****}", "InUseCount": 0, "RestoreCount": 0, "ExpireTime": 0, "StartedTime": 1762502813, "CompletedTime": 1762502823, "CreatedTime": 1762502802, "UpdatedTime": 1762502823 } ] } }
本步骤提供多场景示例:恢复源实例数据、新建相同规格与数据的实例、将数据恢复至非源实例。
注意
恢复数据会将实例中原有的数据覆盖,请谨慎操作。
登录云手机控制台。
进入正在测试的本地存储业务。
在实例管理 > 实例列表中,找到测试实例。
在操作列,单击详情。
选择终端,并在实例终端内,删除测试实例内 /data 路径下的 1.txt、2.txt、3.txt 文件。
该步骤用于模拟文件丢失。
调用恢复数据 RestoreData 接口,传入步骤一已备份的数据 ID,恢复实例数据。
调用时传入的请求参数如下:
响应结果示例如下:
{ "ResponseMetadata": { "Action": "RestoreData", "Region": "cn-beijing", "RequestId": "2025110716340114E810A99C57****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "TaskIdList": [ "756989882881229****" ], "Details": [ { "TaskId": "756989882881229****", "JobId": "job-756989882881229****-756989046484640****", "PodId": "756989046484640****" } ] } }
成功恢复数据后,返回云手机控制台,在实例终端内查询 /data 路径下文件,文件已成功恢复。
注意
该场景下,新创建实例的配置、属性和参数等信息均从源实例拷贝,因此必须确保源实例存在。
调用恢复数据 RestoreData 接口时,可传入 CreatePodNum 参数,自动新建实例,新建的实例与源实例规格相同,实例内 /data 路径下的数据相同。调用时传入的请求参数如下:
响应结果示例如下:
{ "ResponseMetadata": { "Action": "RestoreData", "Region": "cn-beijing", "RequestId": "202511071642191885B1C70CE8****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "TaskIdList": [ "756990107154868****" ], "Details": [ { "TaskId": "756990107154868****", "JobId": "job-756990107154868****-756990107154866****", "PodId": "756990107154866****" } ] } }
登录云手机控制台。
进入正在测试的本地存储业务。
在实例管理 > 实例列表中,查看新增的实例。
新实例的规格、文件数据均与源实例一致:
/data 路径下存在 1.txt、2.txt、3.txt 文件登录云手机控制台。
进入正在测试的本地存储业务。
在实例管理 > 实例列表中,找到场景二新增的实例。
在操作列,单击详情。
选择终端,并在实例终端内,删除实例内 /data 路径下的 1.txt、2.txt、3.txt 文件。
该步骤用于模拟文件丢失。
调用恢复数据 RestoreData 接口,传入步骤一已备份的数据 ID,恢复实例数据。
调用时传入的请求参数如下:
响应结果示例如下:
{ "ResponseMetadata": { "Action": "RestoreData", "Region": "cn-beijing", "RequestId": "202511071652477CFE8F176F63****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "TaskIdList": [ "756990369828607****" ], "Details": [ { "TaskId": "756990369828607****", "JobId": "job-756990369828607****-756990107154866****", "PodId": "756990107154866****" } ] } }
成功恢复数据后,返回云手机控制台,在实例终端内查询 /data 路径下文件,文件已成功恢复。
如果备份数据已不再需要使用,可调用删除备份数据 DeleteBackupData 接口将备份数据删除。
注意
备份数据一旦删除不可恢复,请谨慎操作。
例如:
将步骤一中备份的数据删除,调用时传入的请求参数如下:
响应结果示例如下:
{ "ResponseMetadata": { "Action": "DeleteBackupData", "Region": "cn-beijing", "RequestId": "202511071657311145EDB1BAB7****", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "Details": [ { "BackupDataId": "756989176109562****", "ErrCode": 0, "ErrMsg": "" } ] } }
调用查询备份数据 ListBackupData 接口,查询 "BackupDataId": "756989176109562****" 数据信息。
查询结果如下所示,Result 为空表示该备份数据已被删除,不再可用。
{ "ResponseMetadata": { "Action": "ListBackupData", "Region": "cn-beijing", "RequestId": "20251107165904D8585767A0A7B4D50E0F", "Service": "ACEP", "Version": "2025-05-01" }, "Result": { "NextToken": "", "Rows": [] } }