Я установил интерфейс командной строки AWS в свой Windows 7, и он сразу же работал, когда я вызывал команды из оболочки DOS.
Но DOS, худший язык, когда-либо изобретенный, является отвратительным для любых серьезных сценариев. Итак, я хотел бы использовать AWS CLI от bash через cygwin.
В моем случае установленный AWS CLI - это версия Windows. В принципе, это не должно быть проблемой, поскольку команды Windows исполняются из cygwin. (cygwin включает в себя ваши переменные среды Windows, такие как PATH, в своей собственной среде.)
К сожалению, когда я сначала попытался выполнить команду AWS CLI из cygwin/ bash, я получил сообщение об ошибке:
$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials
Эта ошибка, скорее всего, из-за того, что CLI AWS ищет неправильный каталог для файла credentials
. В Windows ожидается, что этот файл будет находиться в %UserProfile%.aws
и в unix в ~/.aws
.
Один хак работает в том, что в моем домашнем каталоге я создал новый файл с именем config_credentials
, который содержит объединение содержимого файлов этого каталога config
и credentials
. Затем я создал новую систему Windows env var с именем AWS_CONFIG_FILE
, значение которой - путь к config_credentials
. Успех: Команды AWS CLI, выпущенные из cygwin, теперь работают.
Мне интересно, есть ли лучшее решение?
Мне любопытно, почему AWS CLI изначально не удалось найти в правильном домашнем каталоге файлы config
и credentials
. Я также задаюсь вопросом, есть ли способ исправить это (это устранит необходимость в AWS_CONFIG_FILE
env var).