创建云手机实例
本文介绍如何通过阿里云云手机 Java SDK调用RunInstances创建一台或多台云手机实例。
前提条件
创建云手机实例前,您必须提前查询以下信息:
调用ListRegions - 获取可用地域列表查询云手机实例启动的阿里云地域,假设为cn-hangzhou。
调用ListImages - 查询镜像资源接口查看要使用的镜像ID,假设为android_9_0_0_release_3013066_20220224.raw。
调用ListInstanceTypes - 获取实例规格列表查询ECP实例使用的实例规格,假设为ecp.ce.large。
调用DescribeSecurityGroups查询指定地域中的一个或多个安全组ID,假设为sg-bp1fg655nh68xyz9i***。这个安全组的查询和ECS一样。
背景信息
本文调用RunInstances接口创建并自动启动多台ECP实例。详情请参见RunInstances - 批量创建并启动实例。
重要
调用RunInstances会创建云手机实例等计费资源,会产生实际费用。如果您只需测试示例代码,可在代码中设置
DryRun
方法,只发送检查请求,不会创建实例。检查项包括是否填写了必需参数、请求格式、业务限制和ECP库存等。此示例通过阿里云Credentials工具托管AccessKey,来实现API访问的身份验证。具体配置操作,请参见身份验证配置。
代码示例
以下代码适用于实例计费方式采用按量付费:
import com.alibaba.fastjson.JSONObject;
import com.aliyun.cloudphone20201230.Client;
import com.aliyun.cloudphone20201230.models.RunInstancesRequest;
import com.aliyun.cloudphone20201230.models.RunInstancesResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
public class RunInstances {
private static final String REGION_ID = "cn-hangzhou";
private static final String DOMAIN = "cloudphone.aliyuncs.com";
public static void main(String[] args) throws Exception {
Config config = new Config();
config.setRegionId(REGION_ID);
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
* 通过阿里云Credentials工具托管AccessKey,来实现API访问的身份验证。
*/
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
config.setCredential(credentialClient);
config.setEndpoint(DOMAIN);
Client client = new Client(config);
RunInstancesRequest request = new RunInstancesRequest();
request.setRegionId(REGION_ID);
request.setInstanceType("ecp.ce.large");
request.setInstanceName("create-instance");
request.setImageId("android_9_0_0_release_3013066_20220224.raw");
request.setSecurityGroupId("sg-bp15g4ot7sncf8u*****");
request.setVSwitchId("vsw-bp1kbwqsi4rk40*****");
request.setEipBandwidth(5);
RunInstancesResponse response = null;
try {
response = client.runInstances(request);
System.out.println(JSONObject.toJSONString(response.getBody()));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
执行结果
实际返回结果为:
{
"instanceIds": {
"instanceId": ["cp-bp1hxkw9p90****"]
},
"requestId": "BP12C8C4-3C65-427B-B470-3D2572881234"
}