我有一个lambda每小时启动一次EC2。 EC2上的(Windows)操作系统在启动时运行脚本。该任务可能需要1分钟到45分钟的时间。我希望脚本运行后停止EC2。
我可以想到一种实现此目标的方法。我可以在EC2本身上安装aws cli并运行类似aws ec2 stop-instances --instance-ids i-07c1849fe7abcdef
的东西。这样做感觉很奇怪。有更好的方法吗?
为清楚起见,我不想简单地在实例上设置计时器。假设我设置了一个45分钟的计时器,即使任务仅需3分钟,我也会支付45分钟的费用。我希望实例在脚本运行后立即停止,无论脚本运行了多长时间。
答案 0 :(得分:1)
您的实例可以使用操作系统命令关闭电源。
在Linux上,它将是:
sudo shutdown now -h
(-h
表示停止,它将触发电源关闭。如果未包括,操作系统将停止,但实例将继续运行。)
这可以与Instance Initiated Shutdown Behavior结合使用,它可以:
此方法不需要IAM权限。