Gibt es eine Möglichkeit, den Namen einer AWS-Instanz über Befehlszeilentools festzulegen?

8

In der Webkonsole befindet sich ein Feld "Name", das Sie bearbeiten können, um einer Instanz nützlichen Kontext zuzuordnen. Gibt es eine Möglichkeit, diese Informationen über die Befehlszeile festzulegen oder abzurufen?

Jamie Cook
quelle

Antworten:

3

Ja, Sie können die Befehlszeilentools verwenden, um diese Informationen anzuzeigen. Wenn Sie diese Informationen analysieren müssen, ist es besser, die API zu verwenden (da sie sowohl viel schneller als auch viel einfacher zu verarbeiten ist).

Führen Sie in den Befehlszeilentools Folgendes aus: ec2-describe-instances

Sie finden eine Zeile, die ähnlich wie folgt lautet:

TAG     instance        i-xxxxxxxx      Name    MyTagName

Für eine sauberere Anzeige möchten Sie möglicherweise die Ausgabe über grep leiten:

ec2-describe-instances | grep TAG

Vergessen Sie nicht , den Pfad zu Ihren privaten Schlüssel- und Zertifikatdateien zu exportieren ( EC2_PRIVATE_KEY, EC2_CERT) oder festzulegen ( -K, -C).

cyberx86
quelle
Ah ja, Sie müssen nur auf eine neuere Version der ec2-Befehlszeilentools aktualisieren, als ich verwendet habe. Jetzt, wo ich das getan habe, kann ich sehen, dass der Name nur ein Tag ist.
Jamie Cook
Wenn Sie "API verwenden" sagen, was meinen Sie damit? Ich habe immer nur die Befehlszeilentools verwendet, um mit der API zu arbeiten.
Jamie Cook
API = Application Programming Interface - im Wesentlichen eine Möglichkeit für Software, mit ihrem Service zu interagieren. AWS veröffentlicht diese und hat SDKs in verschiedenen Sprachen zugänglich gemacht. Wenn Sie beispielsweise PHP oder Ruby verwenden möchten, können Sie direkt auf AWS-Daten (z. B. Instanzlisten usw.) zugreifen und diese bearbeiten, ohne den Befehl ausführen zu müssen Linienwerkzeuge (Java-basiert und sehr langsam) und analysieren die Daten. Ich persönlich mag das Perl für Skripte - obwohl es einige neuere Funktionen nicht gibt.
Cyberx86
ah, als du "the api" gesagt hast, dachte ich, es gäbe eine API, um sie alle zu regieren :) Ich habe vor einiger Zeit die Ruby-API ausprobiert und fand sie etwas mangelhaft, also wechselte ich stattdessen zu den Linux-Befehlszeilentools.
Jamie Cook
Es gibt 'eine API', es gibt verschiedene Versionen, aber die API selbst ist das, was AWS versteht (SOAP- und HTTP-Anforderungen (GET / POST)) - AWS (und andere) haben Bibliotheken geschrieben, um die API in verschiedenen Sprachen zu verwenden - also Sie Sie müssen nicht die vollständige Anforderung schreiben, sondern nur einen Befehl eingeben. Die von AWS nicht verwalteten SDKs (z. B. Perl) sind nicht immer aktuell. Die AWS sind allerdings ziemlich gut. Zum Beispiel unterstützt PHP One die 2011-05-15 API von EC2, die neueste.
Cyberx86
8

Mit diesem Befehl können Sie den Namen einer Instanz mithilfe der Befehlszeilentools festlegen

ec2addtag i-??????? --tag Name=my-fancy-name
Jamie Cook
quelle
Dies ist die einzige Antwort , die die Frage nach Antworten , wie man setzt die Instanznamen.
Brent Faust
1

Mit dem Befehl aws können Sie den Namen einer Instanz wie folgt festlegen:

aws ec2 create-tags --resources i-??????? --tag Key=Name,Value="MY INSTANCE NAME"
zekel
quelle