Einleitung Beispiel: VPC-Sicherheitsgruppen dürfen nicht verwendet werden für nicht-VPC starten
Ich versuche, eine Instanz zu schaffen, die in einer anderen region, aber ich bekomme diese Fehlermeldung:
AWS Error Code: InvalidParameterCombination, AWS Error Message: VPC security groups may not be used for a non-VPC launch
Hier ist der code, den ich ausführen.
RunInstancesRequest instancereq = new RunInstancesRequest();
instancereq.setInstanceType("m3.medium");
instancereq.setImageId("ami-37b1b45e");
instancereq.setMinCount(1);
instancereq.setMaxCount(1);
ArrayList<String> secgroup = new ArrayList<String>();
instancereq.setKeyName("testkey");
secgroup.add("testdefault");
instancereq.setSecurityGroups(secgroup);
instancereq.setPlacement(getAzPlacement());
RunInstancesResult instanceresult = ec2.runInstances(instancereq);
Ich habe auch versucht, statt mit dem Namen "testdefault", mit dem tatsächlichen groupid (sg-########)
, aber ich Kriege eine Fehlermeldung, dass die Sicherheit der Gruppe nicht vorhanden ist (das ist falsch, es tut). Die auf der Basis der API-doc, wenn mit einer nicht-Standard-VPC, sollten Sie pass die tatsächliche Gruppen-id, aber ich bekommen eine Fehlermeldung wie diese:
InvalidGroup.NotFound, AWS Error Message: The security group 'sg-########' does not exist
Wenn ich "default" als die setSecurityGroups
wird es die Standard-VPC. Es scheint einfach nicht wie der groupid bin ich vorbei, obwohl es genau.
Auch, wenn ich kommentiere die setSecurityGroups
- code, und verwenden Sie setSubnetId
statt, und übergeben Sie die Subnetz-id, es wird das erstellen der Instanz, die gerade fein, aber es geht in die "default" Gruppe Sicherheit nicht "testdefault" wie ich es will.
Alles, was ich bin versucht zu erreichen, ist die Schaffung einer Instanz und die Nutzung der bereits vorhandenen VPC Gruppe.
InformationsquelleAutor QuickNull | 2014-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Antwort konzentrieren sich auf unter Anweisung:
So, wie ich Sie verstehe, Sie wollen, um eine Instanz zu starten, die in einem nicht-Standard-VPC und weisen Sie Sie einer vorhandenen VPC-Sicherheitsgruppe.
Ich bin kein
java
Kerl, aber ich konnte tun, was Sie wollten inruby
als unten.Dies ist zwar eine
Ruby
code, es ist ziemlich straight-forward und geben Ihnen einige klare Hinweise, wie Sie gehen über es zu tun inJava
alle diese AWS-SDKs werden in polling die gleiche web-service-APIs.Ich denke, die Dinge, die Sie konzentriert sich in obigen code ist:
und
subnet-e881bd63
meinem VPC und gelten VPC security-Gruppen-IDsg-fd53bf5e
seiner0
th Netzwerk-Schnittstelle. Neben, es wird auch die Zuweisung einer öffentlichen IP-Adresse zu meinem Beispiel. (standardmäßig wird es nicht zuweisen einer öffentlichen IP-Adresse, wenn Sie auf launch instances in der VPC).Froh, dass es dir geholfen.
InformationsquelleAutor slayedbylucifer
Dieser gleiche Fehler tritt mit dem Kommandozeilen-Programm, so dass ich bin das hinzufügen einer separaten Antwort geholfen QuickNull. Einfach stellen Sie sicher, Sie geben Sie die Sicherheits-Gruppe und Subnetz. Zum Beispiel:
InformationsquelleAutor Paul
Können Sie nicht angeben, Namen von Sicherheitsgruppen für VPC starten (
setSecurityGroups
). Für einen nicht-Standard-VPC müssen Sie security group-IDs statt. Siehe EC2 - run-instances Seite (withSecurityGroupIds
oder--security-group-ids
aus CLI).Finden Sie unter: Sicherheitsgruppen für EC2-VPC
Verwandte:
InformationsquelleAutor kenorb
Dank @slayedbylucifer für seine
ruby
code, hier ist diejava
Lösung für Referenz:InformationsquelleAutor