Leute, ich schreibe ein Skript, das die Tags für eine laufende Instanz als Umgebungsvariablen exportiert. Das Problem bei der automatischen Skalierung von Gruppen besteht darin, dass diese Tags der Instanz nicht zur Verfügung stehen.
Woher weiß man über api / aws cli-Befehle, zu welcher Autoscaling-Gruppe eine Instanz gehört? Ich muss Instanz-Tags in Skripten verwenden, diese sind jedoch nicht verfügbar. Vorschläge?
Vielen Dank!
Ref
, entsteht eine zirkuläre Abhängigkeit zwischen der Startkonfiguration und dem ASG. Daher müssen Sie die automatische Skalierungs-CLI verwenden.Der einfachste Weg, die Autoscaling-Gruppe einer Instanz zu finden, besteht darin, die Tags zu untersuchen. Alle Instanzen in einer Autoscaling-Gruppe haben ein Tag mit dem Namen
aws:autoscaling:groupName
, das den Gruppennamen enthält. Sie können dieses Tag mit dem folgenden Befehl abrufen:Dann können Sie die Tags wie von Bazze beschrieben greifen.
Eine alternative Lösung besteht darin, die Tags von der Autoscaling-Gruppe an die Instanz weiterzugeben.
Wenn Sie Cloudformation zum Erstellen der ASG verwenden, legen Sie diese
"PropagateAtLaunch": "true"
für jedes Tag fest, das Sie weitergeben möchten (siehe Aws Cloud Formation Docs ).Wenn Sie die Gruppe manuell erstellen, aktivieren Sie das Kontrollkästchen "Neue Instanzen markieren" für jedes Tag.
Sobald Sie dies getan haben, werden die Tags in die Instanz kopiert und Sie können die Tags Ihrer Instanz einfach mit dem Befehl beschreiben Tags überprüfen:
Ich finde es
jq
hilfreich, die Ausgabe des aws cli-Tools zu verarbeiten. Mit dem folgenden Befehl wird beispielsweise einekey=value
Liste aus dem JSON erstellt:quelle
Um alles zusammenzufassen:
Tun Sie eine
echo $ASG_NAME
und Sie sollten es sehen.quelle