Я пытаюсь получить сведения об экземпляре AWS EC2 с помощью RunInstancesRequest. Для этого я следовал документу AWS https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-ec2-instances.html.
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId(imageId).withInstanceType(instanceType).withMinCount(1).withMaxCount(count).withSecurityGroups(securityGroupName);
RunInstancesResult runInstancesResult = amazonEC2.runInstances(runInstancesRequest);
String instance_id = runInstancesResult.getReservation().getReservationId();
//waiting for 2 minute
DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
describeInstancesRequest.setInstanceIds(Arrays.asList(instance_id));
DescribeInstancesResult describeInstancesResult = amazonEC2.describeInstances(describeInstancesRequest);
for(Reservation reservation : describeInstancesResult.getReservations()){
for(Instance instance : reservation.getInstances()) {
System.out.println(instance.getPublicDnsName());
}
}
Здесь я могу запустить и запустить экземпляр AWS EC2, но проблема, с которой я столкнулся, заключается в том, что я не могу получить данные EC2 с помощью объекта RunInstancesResult. В соответствии с документацией AWS кажется, что instance_id - это Booking_id, но я считаю, что это не так. Как instance_id, начинайте с "i-"
, а reserve_id с "r-"
.
Как я могу получить подробную информацию только об одном EC2, который я создал с помощью API? Поскольку я получил объект RunInstancesResult
как результат предыдущего API, возникает вопрос: как я могу получить сведения об экземпляре AWS EC2 с помощью RunInstancesRequest?