当我转到 EC2 控制台时,我单击以下之一:
- 关闭
- 终止
- 重启
- 开始
... 我想在我的“Director”机器上收到一条消息,例如实例正在启动,它正在关闭,实际上不需要从 API 轮询所有状态。
这样做的原因是,我使用 API 运行自己的 Nagios 监控,所以我希望 director 机器接收/捕获事件,并在 Nagios 上安排停机时间。
此外,如果它是“终止”,Director 将按照删除节点的方式更新 Chef 服务器。
另一个原因是非常频繁地轮询状态对 API 非常有限,我不能连续请求,但每 1-5 分钟一次。但是这样一来,如果我自己从控制台终止实例,我需要很长时间才能真正发现这些信息,并相应地更新其他服务。
目前我正在研究是否可以在 Linux 实例上使用关闭脚本,这将对 Director 进行远程 API 调用,同时 Director 也会轮询状态。然而,如果实例上有关于事件的可靠通知,最好的方法是直接从 EC2 中获取消息队列,而无需编写额外的 API。
除了 Nagios,我真的更愿意使用 AWS 功能来完成它。
AWS 最近推出了一项解决此问题的功能 - CloudWatch Events:https ://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources /
你需要自己处理这件事。无法将此类挂钩添加到 AWS API 操作。
无需使用 AWS 控制面板,只需通过您选择的脚本语言以编程方式执行所有这些操作。然后,您可以确保在调用 AWS API 之前准备好您需要的环境。