So funktioniert die AWS-Befehlszeilenschnittstelle in cygwin

Ich habe die AWS-Befehlszeilenschnittstelle auf meiner Windows 7-Box installiert und sie funktionierte sofort, wenn ich Befehle von einer DOS-Shell aus aufrief.

Aber DOS, die schlechteste Sprache, die jemals erfunden wurde, ist für jedes ernsthafte Skripting abscheulich. Daher möchte ich die AWS-CLI von Bash über Cygwin verwenden.

In meinem Fall ist die installierte AWS CLI die Windows-Version. Grundsätzlich sollte dies kein Problem sein, da Windows-Befehle über cygwin ausführbar sind. cygwin enthält Ihre Windows-Umgebungsvariablen, wie PATH, in seiner eigenen Umgebung.)

Als ich zum ersten Mal versucht habe, einen AWS CLI-Befehl von cygwin / bash auszuführen, ist leider ein Fehler aufgetreten:

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

Dieser Fehler liegt wahrscheinlich daran, dass die AWS-CLI im falschen Verzeichnis nach dem @ suchcredentials Datei. Unter Windows erwartet es, dass sich diese Datei in @ befinde%UserProfile%.aws und in Unix in~/.aws.

Ein Hack Workaround ist, dass ich in meinem Home-Verzeichnis eine neue Datei mit dem Namen @ erstellt habconfig_credentials enthält eine Vereinigung der Inhalte der Dateien dieses Verzeichnissesconfig undcredentials. Ich habe dann eine neue Windows-System-Umgebungsvariable mit dem Namen @ erstellAWS_CONFIG_FILE dessen Wert der Pfad zu @ iconfig_credentials. Erfolg: Die von cygwin ausgegebenen AWS CLI-Befehle funktionieren jetzt.

Ich frage mich, ob es eine bessere Lösung gibt?

Ich bin gespannt, warum AWS CLI ursprünglich nicht im richtigen Basisverzeichnis nach dem @ gesucht haconfig undcredentials Dateien. Ich frage mich auch, ob es einen Weg gibt, dies zu korrigieren (dies würde die Notwendigkeit für das @ beseitigenAWS_CONFIG_FILE env var).

Antworten auf die Frage(6)

Ihre Antwort auf die Frage