我需要从我的java代码在ec2中启动新的实例。我可以这样做:
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest
.withImageId(myImageId)
.withInstanceType(myInstanceType)
.withMinCount(INSTANCES_COUNT)
.withMaxCount(INSTANCES_COUNT)
.withKeyName(myKeyName)
.withSubnetId(mySubnetId)
.withSecurityGroupIds(mySecurityGroupId)
.withPlacement(myPlace)
;
RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest);它会创建一个新的实例。但是该实例的“公网DNS”和“公网IP”字段为空。
我不需要弹性IP。如果所有新实例都有新地址,则可以。
那么,如何更改我的请求呢?
发布于 2016-07-28 18:19:27
谢谢!我已经找到了解决方案:
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
InstanceNetworkInterfaceSpecification interfaceSpecification = new InstanceNetworkInterfaceSpecification()
.withSubnetId(mySubnetId)
.withAssociatePublicIpAddress(true)
.withGroups(mySecurityGroupId)
.withDeviceIndex(0);
runInstancesRequest
.withImageId(myImageId)
.withInstanceType(myInstanceType)
.withMinCount(INSTANCES_COUNT)
.withMaxCount(INSTANCES_COUNT)
.withKeyName(myKeyName)
//.withSubnetId(mySubnetId)
//.withSecurityGroupIds(mySecurityGroupId)
.withPlacement(myPlace)
.withNetworkInterfaces(interfaceSpecification)
;
RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest);我不知道什么是"DeviceIndex",也不知道为什么它是"0",但它是有效的。
https://stackoverflow.com/questions/38633243
复制相似问题