・ Eclipse-Vorbereitung ・ Registrierung ausführen (eines Tages) ・ Implementierung-Stopp / Start EC2
Wenn Sie den Reagion-Code und die Instanz-ID als Argumente übergeben, wird der Instanzname zurückgegeben. Wenn ab dem zweiten Mal derselbe Reagion-Code übergeben wird, wird der in der Karte gespeicherte Wert zurückgegeben.
// <reagion id <<incetance id, incetance key name>>
Map<String, Map<String, String>> resolveInstance = new HashMap<>();
private String getEC2InstanceKeyName(String targetReagion, String targetInstanceId) {
if (!resolveInstance.containsKey(targetReagion)) {
// <incetance id, incetance key name>
Map<String, String> incetanceMap = new HashMap<>();
//Instanz-ID und Instanzname abrufen(Ich habe das Gefühl, ich kann es bekommen, ohne so etwas Großes zu tun. .. Mit echten EC2-Metadaten-Utils schien dies jedoch nicht möglich zu sein.)
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard().withRegion(targetReagion).build();
DescribeInstancesResult ec2Info = ec2.describeInstances();
for(Reservation res : ec2Info.getReservations()) {
for(Instance ins : res.getInstances()) {
incetanceMap.put(ins.getInstanceId(), ins.getKeyName());
}
}
resolveInstance.put(targetReagion, incetanceMap);
}
return resolveInstance.get(targetReagion).get(targetInstanceId);
}
Recommended Posts