我知道会发生一些生命周期事件,但是实例是否可以通过某种方式知道将要终止?如果有必要,我的应用程序是否用node.js
编写?
有没有现成的机制。您将必须自己构造它,这不会那么复杂。但是它必须包含Amazon EC2 Auto Scaling Lifecycle Hooks。
您可以设置CloudWatch Event规则以在生命周期挂钩发出autoscaling:EC2_INSTANCE_TERMINATING
事件时触发lambda。
现在,根据您要在实例上实现的确切目的,您的lambda必须向实例发送通知其终止状态的通知。
通常通过使用SSM Run Command完成此操作。使用此服务,lambda会将命令发送到实例。在实例上运行的SSM代理(假设您将实例设置为与SSM一起使用)将执行命令。
但是,由于您已经在运行Web应用程序,因此lambda在应用程序上执行GET或POST HTTP可能会更容易。您可以在其上创建一个新的端点,例如/terminating
和lambda会简单地将其称为挂起终止通知。