amazon-web-services - AWS Cloudwatch 调度
问题描述
我目前有一个 lambda 函数,它可以停止我的 EC2 实例(4 个虚拟服务器),并使用 Cloudwatch 创建了一个时间表来启动这个 lambda 函数,以在周一至周五下午 6:30 停止我的服务器。那部分工作得很好。
但是,如果我在例如下午 3 点在我的服务器上运行特定于应用程序的分析批处理,有时运行分析的应用程序需要 4-5 小时才能完成,这意味着 CloudWatch 基本上会在下午 6:30 停止服务器分析过程的中间。有没有办法构建一个异常来检查服务器上的 CPU 利用率是否大于 10%,以延迟 cloudwatch 事件?
如果 CPU 利用率指标 <10%,我尝试在 CloudWatch 中创建一个警报事件来关闭特定的 EC2 服务器,但如果没有被利用,这基本上会在工作日将它们关闭,这不是我需要的。
最终,我希望能够编写一个脚本(lambda 函数)来检查周一到周五下午 6:30 的 CPU 利用率是否低于 10%,如果是,则停止服务器。如果没有,则每小时检查一次。在这一点上,我会喜欢任何和所有的建议。预先感谢您的帮助!
解决方案
我相信您可以使用AWS Step 函数来定义它 您可以创建一个工作流:
- 每小时运行一次(参见文档
- 每小时检查一天中的时间和服务器上的 CPU 负载(使用2 个 lambda 函数 Tasks)
- 如果时间在下午 630 点到午夜之间,从周一到周五,请检查 CPU -请参阅结果路径文档)
- 如果 CPU <10%,则关闭实例。否则什么都不做
推荐阅读
- javascript - Javascript discord.js 使用 unirest.get 存储到变量中
- string - 如何从编码的 gzip 字符串创建 gzip 文件
- html - required 属性在 Chrome 中不起作用,但在 FireFox 中起作用
- javascript - 从 javascrip 中的特定日期获取最后一整周
- c++ - 在 C++ 中堆叠重载运算符时出现问题
- osgi - 使 AEM MemoryUsage 参数成为代码库的一部分
- jupyter-notebook - EMR Notebook 出现“未找到内核”错误
- javascript - 在 vue 中为创建表单处理数据层次结构的最佳方法
- python - 如何在 python 线性模型中进行部分 F 测试?
- google-cloud-platform - GCP 事件无法解决