2017-12-27 908 views
0

我的工作流程通常包括启动一组EC2服务器,并让它们在Excel工作簿的不同部分上工作。它不理想,但它是如何。我想尽可能自动化这个过程。启动后可以将EC2实例设置为打开文件吗?

理想情况下,我会在启动时创建一个打开Excel工作簿的AMI。然后,该工作簿将自动运行一个脚本,该脚本从保管箱文件夹中获取已命名的Excel工作簿,打开该工作簿并运行其自动脚本。这样我所要做的就是编写第二个Excel工作簿的脚本,给它一个“魔术”名称,将它上传到保管箱,并在第一个工作簿中启动适当数量的AMi实例,并在工作已完成并上传到保管箱文件夹。

我知道如何做到这一点,除了启动EC2实例后打开“bootstrap”Excel文件。这可能吗?

回答

0

创建一个ami,在启动时调用aws服务器设置作为控制器。由于您从ami启动的许多实例都会调用控制器并请求工作。

+1

如果工作事先知道,它可能是最好把工作项目上的SQS队列,并让每个EC2实例从队列中提取的项目。 – jarmod

2

当您启动您提供userdata的EC2实例时。该用户数据可以是在实例启动时自动运行的脚本。

另一种替代方法是使用EC2 Systems Manager Run Command在启动后在EC2实例上远程调用操作/脚本 - 您可以轻松自动执行某些操作以启动实例,等待其准备就绪,然后使用某些动态参数远程调用Excel脚本。

另一种方法是放置在不SQS队列中的工作项目,然后使用用户数据的想法运行在实例启动一个脚本,从队列中拉项目,做的工作。

另一个想法是使用AWS Lambda。只需将工作簿上传到S3,并触发一个Lambda函数。这既可以读取和处理整个工作簿,或者如果你真的需要的工作簿的部分由不同的任务来处理,那么你的lambda函数可以调用一些下属lambda函数和扇出工作簿给他们的部分。

0

您可以创建一个窗口服务/任务,并在启动时执行一个bat文件。 bat文件将打开运行脚本的excel文件。

我觉得这个方法可能比使用AWS服务简单。

相关问题