【发布时间】:2022-05-08 01:25:54
【问题描述】:
我有一个每小时启动一个 EC2 的 lambda。 EC2 上的(Windows)操作系统在启动时运行一个脚本。该任务可能需要 1 分钟到 45 分钟。一旦脚本运行,我希望 EC2 停止。
我可以想到一种方法来实现这一点。我可以在 EC2 本身上安装 aws cli 并运行类似 aws ec2 stop-instances --instance-ids i-07c1849fe7abcdef 的东西。这样做感觉很奇怪。有没有更好的办法?
注意
为了清楚起见,我不想简单地在实例上设置一个计时器。假设我设置了一个 45 分钟的计时器,即使任务只需要 3 分钟,我也会支付 45 分钟的费用。无论脚本运行多长时间,我都希望实例在脚本运行后立即停止。
【问题讨论】:
-
您为什么不想使用 AWS CLI 自行停止实例?我认为这没有任何问题。
-
@CharlieFish 在 EC2 本身上安装 aws cli(使用凭据)是不好的做法吗?我的直觉是,这是不好的做法?
-
我不知道。 AWS Linux 事物默认安装了 CLI。所以一些 EC2 实例已经拥有它。对于 IAM 角色,这很常见。我认为这没有任何问题。
-
@CharlieFish 是对的,您不需要凭据 - 只需一个授予权限的实例角色...但您也可以使用
shutdown命令简单地关闭实例电源。 EC2 基础设施看到了这种情况,实例转换到 Stopped 状态,停止计费。你试过吗? -
@Michael-sqlbot 这真的很方便。我已经完成了创建 IAM 的一半(仅限 EC2 停止权限)。我会尝试你推荐的关机方法,因为它更简单。很高兴我知道这两种方法
标签: amazon-web-services amazon-ec2