从NodeJS关闭系统或停止AWS EC2实例

问题描述 投票:0回答:1

我有运行Debian的AWS EC2实例,以及将Node作为服务运行的systemd。 (以下将这些实例称为“节点服务器”。)

节点服务器由永久打开的另一个实例(以下称为“管理器实例”)启动。

当节点服务器遇到预定的不活动时间时,我希望它自动关闭。

我正在考虑以下选项:

  1. ((在感觉到Node处于非活动状态之后,在运行child_process命令的Node中执行shutdown now
  2. ((感测到Node处于不活动状态之后)使用实例自己的资源ID调用AWS开发工具包的stopInstances。>
  3. [在每个节点服务器上公开一个名为last-request-time的HTTP GET终端节点,该终端节点由“管理器实例”定期轮询,然后由管理器实例决定是否/何时调用AWS开发工具包的stopInstances
  4. 我不确定采用哪种方法,将不胜感激。从运行在同一台计算机上的Node显式关闭计算机感觉有些不合适。但是,选项3需要定期进行HTTP轮询,更不用说依靠另一个实例进行自动关闭的风险更大。 (如果管理器关闭,所有实例将继续运行。)

或者在使用特定代码退出特定服务时,也许有可能使systemd关闭计算机?如果可能的话,这将是最好的解决方案,因为Node进程仅在特定的退出代码不活动一段时间后才需要中止自身。

我有运行Debian的AWS EC2实例,以及将Node作为服务运行的systemd。 (以下将这些实例称为“节点服务器”。)节点服务器由另一个实例启动(...

node.js amazon-ec2 aws-sdk systemd aws-sdk-nodejs
1个回答
0
投票

您可以创建一个充当api并使用SDK的stopInstances功能的lambda函数。这也将使您使其具有“管理器实例”的全部功能,并节省更多实例,因为它仅在需要时运行。

© www.soinside.com 2019 - 2024. All rights reserved.