我想在特定时间调出一个EC2实例,运行一个java批处理作业,并在完成后使用Java关闭实例。我想出了如何调出实例并运行我的工作。需要知道如何在工作完成后将其关闭。发现可以通过将自动缩放组值的“setDesiredCapacity”更改为0.此方法将自动缩放组名称作为输入。但由于ASG名称是动态创建的,因此不确定如何将其添加到我的Java作业中。有什么建议吗?
答案 0 :(得分:1)
您的要求似乎是:
我建议不要使用Auto Scaling(根据需求动态扩展容量),我建议:
cron
作业(在EC2或Internet上的任何位置),或者您可以使用Amazon CloudWatch Events运行Lambda函数,从而启动实例。terminate
的关闭行为启动EC2实例,则实例将自动终止。请参阅:Changing the Instance Initiated Shutdown Behavior TerminateInstances
API调用以直接终止该实例。或者,你可能很好,很现代,不使用Amazon EC2实例!
由于您的批处理作业是Java,您可以将Lambda function 与CloudWatch Events计划一起使用。该计划将触发Lambda函数,该函数可以运行您的Java代码。完成后,Lambda将自动终止。您只需每100毫秒使用一次。
请注意,Lambda函数最多可以执行 5分钟,因此如果您的操作时间超过此时间,则Lambda不是合适的解决方案。