AWS EC2 Windows UserData脚本未运行

时间:2017-12-05 19:35:00

标签: amazon-web-services batch-file amazon-ec2 user-data

我有一个本地运行的Windows批处理脚本,当我手动运行时,它也可以在EC2上运行。但是,当我尝试通过CLI启动ec2并且我在user-data参数中输入脚本时,它不会运行。

这是剧本:

for /l %%x in (20171101,1,20171102) do (
start "S3Copy" C:\Progra~1\Amazon\AWSCLI\aws s3 cp 
s3://bucket1/%%x s3://bucket2/%%x --recursive
)

echo waiting
:loop
timeout 1 >nul
tasklist /v |find "S3Copy" >nul && goto :loop
echo all of them are finished

shutdown.exe /s /t 00

当我将其传递给UserData时,我用:

包围它
  

[script] [/ script](尖括号)

然而它不会像这样运行。

正如我所说,我可以登录到已启动的相同Ec2,我可以手动运行脚本并按预期工作。

我会说,当我手动登录时,我使用特定用户,当我从cli启动时,它使用特定的密钥文件,该文件可以使用不同的用户,但是.aws配置是为所有用户设置的AMI。

这里可能缺少什么?

1 个答案:

答案 0 :(得分:0)

您使用的是IAM角色还是IAM用户?使用角色更安全,它可能会解决您的问题:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

另外,请看一下 - 与Linux相比,Windows还有一些细微差别:http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html