Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Amazon AWS java SDK describeInstances für eu-west-1 Region

Frage Entwicklung Java

Mitglied: Shamaz

Shamaz (Level 1) - Jetzt verbinden

09.09.2012, aktualisiert 13:07 Uhr, 2919 Aufrufe

Ich habe jetzt schon so einige Beiträge gelesen. Alle machen sie auch ungefähr das selbe, aber keiner dieser Beiträge konnte mein Problem lösen.

Bei amazon habe ich in der Region eu-west-1 (Irland) einige Instanzen. Diese sind teils angeschaltet oder auch aus. Beim einschalten über das Webinterface (Amazon AWS Console) kann man leider nicht gleich fest mit geben, welche elastic ip auf der instanze liegen soll. Also wollte ich mir ein Java programm schreiben, was einfach das nach einem start macht.

Dafür holte ich mir die AWS java SDK mit den tools für Eclipse (Juno). Über diese AWS Tools legte ich ein neues Projekt an wodurch gleich das richtige "Credential File" im Projekt mit den richtigen werten angelegt wurde.

Nun dachte ich, lass dir erst mal die Instanz IDs geben, mit denen gehts dann weiter. Nüscht ist. Mein Programm, was das machen soll sieht folgendermaßen aus:
01.
import java.io.IOException; 
02.
import java.util.List; 
03.
 
04.
import com.amazonaws.auth.AWSCredentials; 
05.
import com.amazonaws.auth.PropertiesCredentials; 
06.
import com.amazonaws.services.ec2.AmazonEC2Client; 
07.
import com.amazonaws.services.ec2.model.DescribeInstancesRequest; 
08.
import com.amazonaws.services.ec2.model.DescribeInstancesResult; 
09.
import com.amazonaws.services.ec2.model.Instance; 
10.
import com.amazonaws.services.ec2.model.Reservation; 
11.
 
12.
/** 
13.
 *  
14.
 */ 
15.
 
16.
/** 
17.
 * @author shamaz 
18.
 *  
19.
 */ 
20.
public class Main { 
21.
	private static AWSCredentials credentials = null; 
22.
	private static AmazonEC2Client ec2 = null; 
23.
 
24.
	/** 
25.
	 * @param args 
26.
	 */ 
27.
	public static void main(String[] args) { 
28.
 
29.
		init(); 
30.
 
31.
		DescribeInstancesRequest request = new DescribeInstancesRequest(); 
32.
		DescribeInstancesResult result = ec2.describeInstances(request); 
33.
		List<Reservation> reservations = result.getReservations(); 
34.
 
35.
		 
36.
		System.out.println("Die InstanzenIDs sind:"); 
37.
		for (Reservation reservation : reservations) { 
38.
			List<Instance> instances = reservation.getInstances(); 
39.
			for (Instance instance : instances) { 
40.
				System.out.println(instance.getInstanceId()); 
41.
42.
43.
 
44.
45.
 
46.
	public static void init() { 
47.
		try { 
48.
			credentials = new PropertiesCredentials( 
49.
					Main.class.getResourceAsStream("AwsCredentials.properties")); 
50.
			ec2 = new AmazonEC2Client(credentials); 
51.
 
52.
		} catch (IOException e) { 
53.
			e.printStackTrace(); 
54.
55.
 
56.
57.
}
Es kommt einfach nichts in das result.Reservation zurück. Dann habe ich mir gedacht, dass könnte an den Zonen und/oder Regionen liegen. Gib mir diese also mal aus. Das mache ich mit diesem Programm:
01.
import java.io.IOException; 
02.
import java.util.HashSet; 
03.
import java.util.List; 
04.
import java.util.Set; 
05.
 
06.
import com.amazonaws.AmazonServiceException; 
07.
import com.amazonaws.auth.AWSCredentials; 
08.
import com.amazonaws.auth.PropertiesCredentials; 
09.
import com.amazonaws.services.ec2.AmazonEC2Client; 
10.
import com.amazonaws.services.ec2.model.DescribeAvailabilityZonesResult; 
11.
import com.amazonaws.services.ec2.model.DescribeInstancesRequest; 
12.
import com.amazonaws.services.ec2.model.DescribeInstancesResult; 
13.
import com.amazonaws.services.ec2.model.Instance; 
14.
import com.amazonaws.services.ec2.model.Reservation; 
15.
 
16.
/** 
17.
 *  
18.
 */ 
19.
 
20.
/** 
21.
 * @author shamaz 
22.
 *  
23.
 */ 
24.
public class Main { 
25.
	private static AWSCredentials credentials = null; 
26.
	private static AmazonEC2Client ec2 = null; 
27.
 
28.
	/** 
29.
	 * @param args 
30.
	 */ 
31.
	public static void main(String[] args) { 
32.
 
33.
		init(); 
34.
 
35.
		try { 
36.
            DescribeAvailabilityZonesResult availabilityZonesResult = ec2.describeAvailabilityZones(); 
37.
            System.out.println("You have access to " + availabilityZonesResult.getAvailabilityZones().size() + 
38.
                    " Availability Zones."); 
39.
            System.out.println("These are: " + availabilityZonesResult.getAvailabilityZones()); 
40.
 
41.
            DescribeInstancesResult describeInstancesRequest = ec2.describeInstances(); 
42.
            List<Reservation> reservations = describeInstancesRequest.getReservations(); 
43.
            Set<Instance> instances = new HashSet<Instance>(); 
44.
 
45.
            for (Reservation reservation : reservations) { 
46.
                instances.addAll(reservation.getInstances()); 
47.
48.
 
49.
            System.out.println("You have " + instances.size() + " Amazon EC2 instance(s) running."); 
50.
        } catch (AmazonServiceException ase) { 
51.
                System.out.println("Caught Exception: " + ase.getMessage()); 
52.
                System.out.println("Reponse Status Code: " + ase.getStatusCode()); 
53.
                System.out.println("Error Code: " + ase.getErrorCode()); 
54.
                System.out.println("Request ID: " + ase.getRequestId()); 
55.
56.
 
57.
58.
 
59.
	public static void init() { 
60.
		try { 
61.
			credentials = new PropertiesCredentials( 
62.
					Main.class.getResourceAsStream("AwsCredentials.properties")); 
63.
			ec2 = new AmazonEC2Client(credentials); 
64.
 
65.
		} catch (IOException e) { 
66.
			e.printStackTrace(); 
67.
68.
 
69.
70.
}
Heraus kommt:

You have access to 3 Availability Zones.
These are: [{ZoneName: us-east-1b, State: available, RegionName: us-east-1, }, {ZoneName: us-east-1c, State: available, RegionName: us-east-1, }, {ZoneName: us-east-1d, State: available, RegionName: us-east-1, }]
You have 0 Amazon EC2 instance(s) running.

Da fehlt einfach meine Zone und Region. Ich habe die Instanzen in "eu-west-1". Und deshalb denke ich, dass deshalb keine "Reservations" zurück geliefert werden.

Meine Frage also, was muss ich machen um das Problem zu lösen?

mfg

Shamaz


EDIT:

Kaum gibt man das richtige bei Google ein, schon gehts. Dieser Artikel war die Lösung: http://aws.amazon.com/articles/3604
Der Trick war einfach noch beim "init" diese Zeile einzufügen:

ec2.setEndpoint("https://eu-west-1.ec2.amazonaws.com");

Schade, dass es so viel Nerven gekostet hat, was passendes für den Europäischen Raum zu finden. Da finde ich gibt es noch Nachholungsbedarf.

Somit ist die Sache erst mal für mich erledigt.

mfg Shamaz
Ähnliche Inhalte
Webbrowser
Firefox 52 und Java (Workaround) (12)

Tipp von ChriBo zum Thema Webbrowser ...

Java
Java deployment.properties und Systemvariablen (3)

Frage von 1x1speed zum Thema Java ...

Off Topic
EU-Parlamentsausschuss billigt Verbot anonymer Online-Zahlungen (4)

Link von BassFishFox zum Thema Off Topic ...

Datenschutz
Die EU Datenschutz Grundverordnung - Teil 1 (1)

Link von Ausserwoeger zum Thema Datenschutz ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...