Get Instanz-id der EC2-Instanz, die über Java

Habe ich eine AWS EC2-Instanz bereitgestellt, und ich brauche, um herauszufinden, Ihre öffentliche IP-Adresse. Howver, zu wissen, dass ich muss zuerst wissen, der Instanz-id von meinem Beispiel.

Ziel:

  • Ich habe einen Java-code läuft in meinem Beispiel, und ich möchte, dass code herausfinden, die aktuelle IP-oder Instanz-ID der Instanz, wo es ausgeführt wird.

Nach der Lektüre der Amazon-Dokumentation kam ich mit einer Java-Methode gibt die IP an alle Instanzen, aber das ist nicht das, was ich will, ich möchte eine Methode, die zurückgibt, wird nur die Instanz-id oder die öffentliche IP-Adresse der ausgeführten Instanz.

    /**
     * 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 diesem code habe ich ein array mit den Instanz-ids aller aktiven Instanzen, aber ich weiß nicht, ob Sie "mich" oder nicht. Also gehe ich davon aus, dass mein Erster Schritt würde sein, zu wissen, wer ich bin, und dann zu Fragen für meine öffentliche IP-Adresse.

Gibt es eine änderung, die ich tun kann, um die Vorherige Methode, um mir zu geben was ich will? Gibt es einen effizienteren Weg, es zu tun?

Schreibe einen Kommentar