我目前正在 Amazon EC2 上运行一组 c3.large Windows Server 2012 实例。
我们正在进行的项目略有不同,我们运行一个 Node.js 脚本,该脚本通过消息队列定期轮询作业。每个作业都会打开一个 .jar 文件以在 Windows 桌面上打开用户界面。然后,我们的 .jar 文件执行一系列操作(包括截取当前窗口的屏幕截图),终止,然后 Node.js 将结果上传到 MongoDb 和 Amazon S3。Java 应用程序 (.jar) 需要桌面会话处于活动状态才能正常运行(因此我认为服务没什么用) - 有点像自动 UI 测试需要活动桌面的方式。
基础设施运行良好!但是,桌面环境是一个大问题。通过 EC2 管理控制台启动新实例后,桌面环境并不存在,直到我从本地计算机手动启动远程桌面连接(从而创建桌面以供我们的软件运行)。出于可扩展性原因,这不切实际,理想情况下,我希望能够根据需求以编程方式启动/停止实例。
我尝试了许多方法;包括<powershell>
EC2 用户数据中的命令、使用 VNC 服务器以及在 Windows 机器内部调整一些设置……但都无济于事。
是否有人知道在启动 EC2 Windows Server 2012 实例时创建桌面环境的技术/设置?
答案1
您应该能够将机器配置为自动登录。然后每次机器启动时,控制台会话都会使用您指定的凭据登录。
看从自定义 AMI 启动多个具有自动登录功能的 EC2 Windows 服务器了解如何配置此类内容的示例。基本上,您只需使用自动登录注册表值,但在对主机进行系统准备时可以使用一些解决方法。