以下是我在 ec2 实例上配置 Windows 2012 服务器时运行的 powershell 脚本代码:
# 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 脚本中生成一个新的 shell 并aws s3
从那里运行命令?
答案1
说实话,我从来没怎么用过 powershell 中的 aws cli。由于经常出现问题,我使用了批处理。注意:如果您使用代理,则需要通过命令行进行设置。
答案2
我在使用 PowerShell 运行 AWS cli 时遇到过 Leif 提到的类似问题,因此我又回到了主要在 Git Bash 或 CMD 中使用它。但是,如果您安装了 Python,也可以尝试运行 AWS Python shell:https://github.com/aws/aws-cli