Вот код в сценарии PowerShell, который я запускаю для подготовки сервера Windows 2012 на экземпляре ec2:
# Set up chocolately
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# Install awscli locally
choco install -y awscli
aws s3 sync s3://my-bucket/installation_files "c:\opt\installation_files"
Но когда дело доходит до aws s3
, это сообщение об ошибке не удалось
aws_instance.convertor (remote-exec): aws : The term 'aws' is not recognized as the name of a cmdlet, function,
Если после этого я удаленно подключусь к приставке, я могу перезапустить aws s3
команда без проблем
Как я могу обойти эту проблему? Можно ли создать новую оболочку из моего сценария PowerShell и запустить aws s3
команда оттуда?
У меня были аналогичные проблемы, о которых упоминает Лейф, с запуском AWS cli в PowerShell, и я вернулся к использованию его в основном в Git Bash или просто в CMD. Однако, если у вас установлен Python, вы также можете попробовать запустить оболочку AWS Python: https://github.com/aws/aws-cli
Честно говоря, мне никогда не везло с использованием aws cli из PowerShell. Я использовал пакетную обработку из-за постоянных проблем, которые у меня были. Примечание: если вы находитесь за прокси-сервером, вам нужно будет установить его через командную строку.