Terminal-UI für AWS (taws) – terminalbasierter Viewer und Manager für AWS-Ressourcen
(github.com/huseyinbabal)- taws ist ein Rust-basiertes UI-Tool, mit dem sich AWS-Ressourcen in einer Terminal-Umgebung durchsuchen und verwalten lassen; AWS-Infrastruktur kann damit in Echtzeit beobachtet und gesteuert werden
- Unterstützt über 94 Ressourcentypen und mehr als 60 AWS-Services und bietet Profil- und Regionswechsel, Tastaturbedienung im Vim-Stil sowie Autovervollständigung
- Unterstützt das Starten, Stoppen und Beenden von EC2-Instanzen, die Detailansicht in JSON/YAML sowie Filterung und Echtzeit-Aktualisierung
- Bietet verschiedene Installationsmethoden für macOS, Linux und Windows, darunter Homebrew, Cargo und Binärdownloads; die Einrichtung von AWS-Zugangsdaten und IAM-Berechtigungen ist erforderlich
- Ein von k9s inspiriertes Open-Source-Projekt auf Basis der Bibliothek Ratatui, das Nutzern der AWS CLI eine visuelle und intuitive Verwaltungserfahrung bietet
Überblick über taws
- taws ist ein terminalbasierter Viewer und Manager für AWS-Ressourcen, der dafür entwickelt wurde, AWS-Infrastruktur einfach zu durchsuchen und zu verwalten
- Überwacht Änderungen an AWS-Ressourcen fortlaufend und bietet die Möglichkeit, Befehle für beobachtete Ressourcen auszuführen
- Ziel des Projekts ist die Vereinfachung und Effizienzsteigerung der AWS-Infrastrukturverwaltung
- Es wird unter der MIT-Lizenz veröffentlicht und ist in Rust geschrieben
Hauptfunktionen
- Mit Unterstützung für mehrere Profile und Regionen lässt sich bequem zwischen verschiedenen AWS-Konten und Regionen wechseln
- Unterstützt die Durchsuchung und Verwaltung von über 94 Ressourcentypen und mehr als 60 Services
- Mit der Funktion zur Echtzeit-Aktualisierung kann der Ressourcenstatus per Tastendruck aktualisiert werden
- Vim-ähnliche Tastaturbedienung für schnelle Navigation und Befehlsausführung
- Integrierte EC2-Instanzsteuerung (Starten, Stoppen, Beenden)
- Bietet Detailansicht in JSON/YAML, Filterung nach Namen und Eigenschaften sowie Autovervollständigung mit Fuzzy-Matching
Installation
- Homebrew (macOS/Linux):
brew install huseyinbabal/tap/taws - Download vorgebauter Binärdateien: Architekturabhängige Pakete für macOS, Linux und Windows verfügbar
- Installation mit Cargo:
cargo install taws - Build aus dem Quellcode: Rust 1.70 oder höher sowie C-Compiler und Linker erforderlich
- Installationsbefehle für Entwicklungswerkzeuge je nach Plattform vorhanden (z. B.
xcode-select --install,sudo apt install build-essential -y)
- Installationsbefehle für Entwicklungswerkzeuge je nach Plattform vorhanden (z. B.
Ausführung und Konfiguration
- AWS-Zugangsdaten werden aus Standardquellen erkannt, etwa
aws configure, Umgebungsvariablen, IAM-Rollen oder der Datei~/.aws/credentials - Für IAM-Berechtigungen werden mindestens
Describe*- undList*-Rechte benötigt - Ausführungsbeispiele:
- Mit Standardprofil starten:
taws - Bestimmtes Profil angeben:
taws --profile production - Bestimmte Region angeben:
taws --region us-west-2 - Debug-Logs aktivieren:
taws --log-level debug
- Mit Standardprofil starten:
- Pfade zu den Logdateien:
- Linux:
~/.config/taws/taws.log - macOS:
~/Library/Application Support/taws/taws.log - Windows:
%APPDATA%\\taws\\taws.log
- Linux:
Tastenzuordnungen
- Navigation: Mit
j/koder den Pfeiltasten bewegen, mitCtrl-u/dseitenweise navigieren - Ansichtswechsel: Mit
:den Ressourcenselektor öffnen, mitEnteroderddie Detailansicht anzeigen - Aktionen:
raktualisieren,/filtern,pProfil wechseln,RRegion wechseln,qbeenden - EC2-Steuerung:
sstarten,Sstoppen,Tbeenden
Unterstützte Services
- Unterstützung für 30 zentrale AWS-Services (deckt über 95 % der typischen Nutzung ab)
- Compute: EC2, Lambda, ECS, EKS, Auto Scaling
- Storage: S3
- Database: RDS, DynamoDB, ElastiCache
- Networking: VPC, Route 53, CloudFront, API Gateway, ELB
- Security: IAM, Secrets Manager, KMS, ACM, Cognito
- Management: CloudFormation, CloudWatch Logs, CloudTrail, SSM, STS
- Messaging: SQS, SNS, EventBridge
- Containers: ECR
- DevOps: CodePipeline, CodeBuild
- Analytics: Athena
Umgebungsvariablen
AWS_PROFILE: StandardprofilAWS_REGION: StandardregionAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN: Anmeldedaten
Bekannte Probleme
- Auf einige Ressourcen kann mit der standardmäßigen Nur-Lese-Richtlinie möglicherweise nicht zugegriffen werden
- Durch Paginierung kann sich die Anzahl der Ressourcen während des Ladevorgangs ändern
- Einige globale Services wie IAM, Route53 und CloudFront verwenden immer die Region us-east-1
Beiträge und technische Basis
- Beiträge sind willkommen; vor dem Hinzufügen neuer Services ist jedoch ein Vorschlag in GitHub Discussions erforderlich
- Inspiriert von k9s; verwendet Ratatui (Rust-TUI-Bibliothek) und aws-sigv4 (AWS SDK for Rust)
- Open-Source-Projekt für die AWS-Community mit 622 Stars und 15 Forks
Lizenz
- Veröffentlicht unter der MIT License
- Quellcode und Lizenzdatei sind im GitHub-Repository verfügbar
1 Kommentare
Hacker-News-Kommentare
Ich verstehe den Reiz von TUIs nicht wirklich
Die Stärke der CLI ist Skriptbarkeit und Komponierbarkeit, aber eine TUI wirkt für mich nur wie eine Version einer Browser-UI mit niedriger Auflösung
In GUIs sieht man solche ausdrucksstarken Tastatur-Interfaces kaum
Bei mir lief es nicht richtig
Es macht mir Sorgen, über AWS-Infrastruktur noch eine zusätzliche Middleware-Schicht zu legen. Ein falscher Befehl oder ein Bug kann ernste Folgen haben
Gerade bei AWS gibt es viele zustandsbehaftete Datenbanken oder Produktions-Workloads, die sich nur schwer wiederherstellen lassen
Versuche, die CLI-Erfahrung zu verbessern, finde ich gut, aber persönlich zögere ich sogar bei einem reinen Read-only-Modus
Die AWS CLI oder Konsole reduziert zumindest eine mögliche Fehlerquelle
Das gilt für die AWS CLI oder Konsole genauso.
Wenn man Änderungen mit IaC verwaltet, ist ein Tool zum visuellen Erkunden von Ressourcen nützlich. Die AWS-Konsole ist einfach zu umständlich
Noch eine zusätzliche Schicht einzuführen, bringt ein hohes Risikopotenzial mit sich
Wenn es wie k9s nur mit Read-only-Berechtigungen genutzt wird, wäre das wohl okay
Es wäre gut, wenn es in der Menüleiste einen Punkt wie „Preis der aktuellen Änderungen (Price of Current Changes)” gäbe
Damit man sofort sieht, ob eine Änderung 0,01 Dollar oder 10.001 Dollar kostet
Im Code gibt es den Kommentar
// TODO: Handle credential_source, role_arn, source_profile, sso_*Das heißt, SSO oder Multi-Account-Login werden nicht unterstützt, und man muss
AWS_ACCESS_KEY_IDundAWS_SECRET_ACCESS_KEYdirekt verwendenFür Produktionsumgebungen halte ich das wegen des Sicherheitsrisikos für kaum praxistauglich
Heutzutage fühlt es sich so an, als würde ein 15-zeiliges Shell-Skript irgendwann zu einer 50k-Zeilen-bun-CLI oder TUI-App anwachsen
Man sollte sie nicht als Ersatz für die bestehende CLI sehen, sondern als Ergänzung
In Organisationen mit mehreren AWS-Accounts kann man Profile mit Tools wie aws-sso-util vorab konfigurieren, dann geht der Kontowechsel deutlich schneller
Als ich den Titel zuerst sah, dachte ich kurz, er bedeute, dass die AWS-UI terminalbasiert geworden ist
Vielleicht eine dumme Frage, aber ich frage mich, ob eine TUI auch in einem Terminal mit hellem Hintergrund gut aussieht
Dark Mode verursacht bei mir eher Augenermüdung
Leider ist die App in meinem Terminal mit hellem Hintergrund direkt nach dem Start abgestürzt, daher konnte ich es nicht testen
Bei mir ist es direkt beim ersten Start abgestürzt. In diesem Zustand wird es schwer, viral zu gehen
Ich wünschte, mehr TUI-Designer hätten Interfaces aus der Mainframe-Ära wie Hercules erlebt
Die damalige Philosophie des UI-Aufbaus bietet viel, wovon man lernen kann