Wie man AWS command line interface arbeiten in cygwin

Habe ich installiert, die AWS-Befehlszeilen-Schnittstelle auf meinem Windows 7-Rechner, und es hat sofort funktioniert, wenn ich die genannten Befehle aus einer DOS-shell.

Aber DOS ist die Schlimmste Sprache, die jemals erfunden wurde, ist abscheulich für jeden ernsthaften scripting. Also, würde ich mag, um zu verwenden Sie die AWS CLI von bash via cygwin.

In meinem Fall, die installierten AWS CLI und die Windows-version. Im Prinzip, das sollte kein problem sein, weil Windows-Kommandos sind ausführbare Datei von cygwin. (cygwin enthält Ihre Windows-Umgebungsvariablen, wie PFAD, in seiner eigenen Umgebung.)

Leider, als ich versuchte, führen Sie eine AWS-CLI-Befehl von cygwin/bash, ich bekam eine Fehlermeldung:

$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials

Dieser Fehler ist wahrscheinlich, weil die AWS CLI Blick in das falsche Verzeichnis für die credentials - Datei. Auf Windows, rechnet es sich, die Datei in %UserProfile%.aws und in unix in ~/.aws.

Einem hack umgehen, ist, dass in meinem home-Verzeichnis habe ich erstellt eine neue Datei mit dem Namen config_credentials enthält eine union der Inhalt dieses Verzeichnisses die Dateien config und credentials. Ich machte dann eine neue Windows-System env var namens AWS_CONFIG_FILE deren Wert der Pfad zu config_credentials. Erfolg: AWS CLI-Befehle, die von cygwin funktionieren jetzt.

Frage ich mich, ob es eine bessere Lösung?

Ich bin neugierig, warum AWS CLI zunächst keine Suche in die richtige home-Verzeichnis für den config und credentials - Dateien. Ich Frage mich auch, ob es eine Möglichkeit gibt zu korrigieren, dass (dieses würde die Notwendigkeit beseitigen, für die AWS_CONFIG_FILE env var).

Sind Sie interessiert, die PowerShell als alternative? AWS hat eine native PS-CLI: aws.amazon.com/powershell
Nur als letzten Ausweg. Meine Firma will limit, wie viele Sprachen, die wir verwenden (Kontinuität der Wartung ist ein Anliegen), und die bash verwendet an mehreren stellen (vor allem auf Servern) in der Erwägung, dass PowerShell wurde noch nie genutzt. Es müsste eine wirklich überzeugende Anwendungsfall zu rechtfertigen, eine neue Sprache.
Ah ja, DOS, bekannte Sprache.

InformationsquelleAutor HaroldFinch | 2015-06-12

Schreibe einen Kommentar