我正在尝试通过Java代码启动EC2实例。我在项目中添加了这个maven依赖项:
https://www.amazontrust.com/repository/
它为我提供了一个类,可用于请求启动实例。代码如下:
StartInstancesRequest startReq = new StartInstancesRequest()
.withInstanceIds(instanceID);
ec2Client.startInstances(startReq);
但是,with*
类中没有StartInstancesRequest
方法,它将实例类型作为输入。
任何人都可以告诉我如何指定实例类型?
答案 0 :(得分:0)
startInstances
调用实际上用于启动处于停止状态的实例 - 这就是实例ID的原因。
当我想自定义实例时,我使用runInstances。有了它,你可以做以下事情:
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId("ami-4b814f22")
.withInstanceType("m1.small")
.withMinCount(1)
.withMaxCount(1)
.withKeyName("my-key-pair")
.withSecurityGroups("my-security-group");
(直接取自Run an Amazon EC2 Instance)。
您可以使用大量自定义来配置新实例。
答案 1 :(得分:0)
如果您不想使用AMI并使用runInstances,为什么不在启动实例之前更改实例类型,如下所示
// Change the instance type
ModifyInstanceAttributeRequest modReq = new ModifyInstanceAttributeRequest()
.withInstanceType(instanceType)
.withInstanceId(instanceID);
ec2client.modifyInstanceAttribute(modReq);
// Then start your instance
StartInstancesRequest startReq = new StartInstancesRequest()
.withInstanceIds(instanceID);
ec2Client.startInstances(startReq);