AWS CLI – Filtern von Ausgaben Einführung in das AWS Command Line Interface, Teil 3

Die CLI gibt ohne Verwendung von Filtern ein umfangreiches JSON-Array aus.

Das AWS-CLI-Kommando „EC2“ bietet eine große Auswahl an Möglichkeiten, virtuelle Maschinen in AWS zu erstellen, zu steuern und zu verwalten. Der dritte Teil unseres CLI-Workshops befasst sich mit der Suche nach Ressouren, bzw. allgemein mit den Filtermöglichkeiten der Ausgaben, die „jedes“ CLI-Kommando liefert.

Wir haben uns bisher ausschließlich mit dem AWS-CLI-Kommando „aws ec2“ befasst und dabei unter anderem das Sub-Command „run instances“ kennengelernt. So erstellt beispielsweise

aws ec2 run-instances –image-id <ami-id> –user-data file:///home/ec2-user/UserData.txt –key-name <key-name> –security-group-ids <sg-id> –instance-type t2.micro –subnet-id <subnet-id> –associate-public-ip-address –query ‚Instances[*].InstanceId‘

eine neue EC2-Instanz in mit den hervorgehobenen Provisionierungs-Attributen, wie z. B. Image-ID (ami-id), Security-Group (sg-id) oder Subnetz (subnet-id).

Hat der Admin explizit das Ausgabe-Format „JSON“ gewählt oder es via „aws configure“ voreingestellt, liefert jedes CLI-Kommando ein mehr oder weniger komplexes Array aller in der bei „aws configure“ (oder explizit) angegebenen Default-Region vorhandenen Ressourcen. Das abgebildete Kommando filtert den umfangreichen JSON-Output, sodass dieser nur die Instance-ID der erstellten Instanz enthält.

Verwendet der Admin aber beispielsweise „describe instances“, das einfachste und am häufigsten benötige Sub-Command in EC2, so liefert dieses ohne weitere Filterung sämtliche in der Default-Region vorhanden Instanzen zurück – und zwar jede mit all ihren verfügbaren Attributen. Je nach Anzahl der Instanzen kann das Ausgabe-Array also sehr, sehr groß ausfallen. Bei der Analyse des JSON-Files fällt auf, dass die „oberste Ebene“ nicht durch die Instanzen (Instances) gebildet wird, sondern durch die so genannte „Reservation“. Diese hat nicht etwa etwas mit dem Purchase-Typ „Reserved Instances“ zu tun. Vielmehr kann man das Attribut etwa mit „Erstellungs-Anforderung für EC2-Instanzen“ übersetzen.

So lassen sich ja z. B. mit einem einzigen Sub-Command „create-instances“ (oder auch im entsprechenden Dialog der AWS-Management-Console zum Erstellen von EC2-Instanzen) von ein und demselben AMI in einem einzigen Aufruf durchaus mehrere Instanzen des gleichen Typs erzeugen. Diese hätten dann naturgemäß je eine individuelle Instance-ID, aber alle die gleiche Reservation-ID.

Die Reservation-ID ist also ein eindeutiger Wert, der eine Anforderung zum Starten von EC2-Instanzen angibt. So eine Startanforderung kann von der CLI, AutoScaling oder der AWS Management Console stammen. Jede Anforderung nach EC2-Instanzen liefert entweder keine oder mehrere Instanzen zurück. Klappt die Startanforderung, ist der Rückgabewert eins (oder höher), da eine einzelne Startanforderung in mehrere Reservierungen aufgeteilt werden kann.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.