Methode zum suchen von Instanzen befestigt ELB
Ich bin mit dem Amazon AWS ELB Kommandozeilen-tools. Gibt es eine Möglichkeit, herauszufinden, die Instanzen angehängt, um ein bestimmtes Elastic Load Balancer (ELB)?
- Es gibt Sie Instanz-ids ab.
aws - elb describe-load-balancers --load-balancer-name 'myelb' --query LoadBalancerDescriptions[*].Instances
Du musst angemeldet sein, um einen Kommentar abzugeben.
2013/12/18: aktualisieren Sie diesen, und da die links tot sind!
Installierte ich das neue AWS-Befehlszeilen-tools:
Dann ran:
Diese Daten werden in
~/.aws/config
.Dann finde ich-Instanzen verbunden mit einem loadbalancer etwa so:
Werden die Daten in
LoadBalancerDescriptions.Instances
.Mein loadbalancer heißt
my-name
— dies ist der name, den Sie gewählt, wenn Sie es erstellt haben.Alte Antwort unten!
Ich bin nicht vertraut mit dem cli-tool, aber ich habe die API.
Ich würde überprüfen Sie diese zwei Anforderungen:
DescribeLoadBalancers
DescribeInstanceHealth
Dem cli tool hat wahrscheinlich etwas ähneln Sie diese?
HTH!
<Instances/>
in der Probe-Reaktion für dieDescribeLoadbalancers
in der Dokumentation. Wenn dies nicht funktioniert, versuchen SieDescribeInstanceHealth
? Es nimmt zwei Parameter - eine optionale Liste von Instanzen und load-balancer-Namen. Von dem, was ich verstehe, das sollte def. Rückgabe alle von Ihnen lassen Sie eine Liste der Instanzen und geben Sie einfach den Namen der loadbalancer.aws - elb describe-load-balancers --load-balancer-name 'myelb' --query LoadBalancerDescriptions[*].Instances
Vorausgesetzt, Sie haben aws-cli und jq installiert haben, verwenden Sie den folgenden Befehl aus, um zugeordneten ec2-instance-ids:
Diese zurück ec2 ids zugeordnet, die ELB.
Anmerkung: ich empfehlen Sie setup aws cli-profile, so dass Sie nicht haben, um Geige mit Umgebungsvariablen und region params (so viel).
Weil ich Liebe Antworten, die verwendet werden können mit einem minimum von suchen/ersetzen und kopieren /einfügen
Voraussetzungen : aws-cli konfiguriert
Konfigurieren : Ihre ELB-name
Copy-n-Paste im terminal
Ausgabe wird eine Liste der Öffentlichen IP-Adressen. Man könnte auch einfach führen Sie die Abfrage in der Klammer der
for ID in $(...)
zu bekommen, die Instanz-IDsEtwas anderes wollen ?
Fühlen Sie sich frei, um einen Blick auf die Struktur der
und ändern Sie die Abfrage entsprechend!
Wenn jemand kommt hier aus der Suche, warum die
elb-describe-lbs
Befehl gibt nichts zurück, wenn Sie haben ELBs und läuft, was ich realisierte war, die ich brauchte, um hinzuzufügenEC2_REGION=eu-west-1
meine Umgebungsvariablen (oder verwenden Sieelb-describe-lbs --region
Befehl)Wenn Sie möchten, um zu sehen, ELB und die Instanzen angehängt Verwendung JMESPath wie diese:
Ergebnis
Wenn Sie wissen, die Namen der ELB und wollen sehen, was angeschlossen ist, verwenden JMESPath wie diese:
Ergebnis:
LoadBalancerName
zuID
, und dann zuELB
. Den zweiten Teil des--query
parameter entfernt werden kann:aws elb describe-load-balancers --query "LoadBalancerDescriptions[].{LoadBalancerName:LoadBalancerName,InstanceId:Instances[].InstanceId}" --output=json
ersetzen INSTANCEID mit der eigentlichen Instanz-id
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[?InstanceId=='INSTANCEID'].InstanceId}[*].{ID:ID,InstanceId:InstanceId[0]}" --output=text | grep INSTANCEID | awk '{print $1}'
In node.js Sie können dies tun, indem
aws-sdk
.data.LoadBalancerDescriptions
ist ein array und jedes element im array ist ein Objekt mit der EigenschaftInstances
hat, dass die Instanz-id.Können Sie die Schleife über alle Sie load-balancer-Instanz-ids wie folgt:
Können Sie die Schleife durch Ihre load balancers die Namen wie folgt :
Zur Verfügung gestellt, die Sie so konfiguriert haben, dass Ihre aws-cli :
src: http://docs.aws.amazon.com/cli/latest/topic/config-vars.html
Katze << "EOF" > ~/.aws/config
Und konfiguriert Ihre Anmeldeinformationen:
aws elb beschreiben-load-Balancer --load-balancer-name "LB_NAME" | grep "InstanceId" | awk '{print $2}' | sed 's/\"//g'
Zuerst
elb-describe-lbs
um eine Liste von Ihrem load Balancer und Ihre Namen.Dann tun
elb-describe-instance-health <LB_NAME>
um eine Liste von Instanzen hinter load balancer. LB_NAME ist der Wert der 2. Spalte in der Ausgabe vonelb-describe-lbs
.elb-describe-lbs
ist definitiv nicht in meiner Konsole.aws elb describe-load-balancers
undaws elb describe-instance-health
Können Sie AWS-Befehlszeilen-tools mit einigen bash-Rohrleitungen:
Diese geben Sie die öffentliche DNS-Namen für jede Instanz angebracht, um den ELB, können Sie die awk-Spalten, die jeweils an anderen details.