Ho un'istanza AWS EC2 distribuita e devo trovare il suo IP pubblico. Comunque, per sapere che devo prima conoscere l'istanza-ist della mia istanza.Ottieni istanza dell'istanza EC2 tramite Java
Obiettivo:
- Ho un codice Java in esecuzione nel mio esempio, e voglio che il codice capire il IP corrente o Istanza-ID dell'istanza in cui è in esecuzione.
Dopo aver letto la documentazione Amazon mi si avvicinò con un metodo Java che restituisce l'IP di tutte le istanze, , ma questo non è quello che voglio, voglio un metodo che restituisce solo l'istanza-id o del pubblico IP indirizzo dell'istanza in esecuzione.
/**
* Returns a list with the public IPs of all the active instances, which are
* returned by the {@link #getActiveInstances()} method.
*
* @return a list with the public IPs of all the active instances.
* @see #getActiveInstances()
* */
public List<String> getPublicIPs(){
List<String> publicIpsList = new LinkedList<String>();
//if there are no active instances, we return immediately to avoid extra
//computations.
if(!areAnyActive())
return publicIpsList;
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setInstanceIds(instanceIds);
DescribeInstancesResult result = ec2.describeInstances(request);
List<Reservation> reservations = result.getReservations();
List<Instance> instances;
for(Reservation res : reservations){
instances = res.getInstances();
for(Instance ins : instances){
LOG.info("PublicIP from " + ins.getImageId() + " is " + ins.getPublicIpAddress());
publicIpsList.add(ins.getPublicIpAddress());
}
}
return publicIpsList;
}
In questo codice che ho un allineamento con l'istanza-ID di tutte le istanze attive, ma non so se sono "me" o no. Quindi presumo che il mio primo passo sarebbe sapere chi sono, e poi chiedere il mio indirizzo IP pubblico.
C'è un cambiamento che posso fare con il metodo precedente per darmi quello che voglio? C'è un modo più efficiente di farlo?
qui la soluzione: http://codeflex.co/java -get-ec2-private-public-ip-and-instance-id/ –