当EC2实例停止/终止时,是否有某种方式触发事件(例如,运行脚本以将某些日志推送到S3)?AWS EC2实例上的触发事件停止/终止
我已经研究过在/ usr/lib/systemd/system中使用服务触发脚本,但我还没有任何运气。我听说在触发服务之前可以关闭实例上的网络功能,如果这是真的,那可能是脚本执行不正确的原因。
当EC2实例停止/终止时,是否有某种方式触发事件(例如,运行脚本以将某些日志推送到S3)?AWS EC2实例上的触发事件停止/终止
我已经研究过在/ usr/lib/systemd/system中使用服务触发脚本,但我还没有任何运气。我听说在触发服务之前可以关闭实例上的网络功能,如果这是真的,那可能是脚本执行不正确的原因。
所以答案是不是真的AWS具体,但它现在是为我工作(在EC2实例停止和终止测试)。
/usr/lib/systemd/system/my_shutdown.service
[Unit]
Description=my_shutdown Service
Before=shutdown.target reboot.target halt.target
Requires=network-online.target network.target
[Service]
KillMode=none
ExecStart=/bin/true
ExecStop=/path/to/my_script.sh
RemainAfterExit=yes
Type=oneshot
[Install]
WantedBy=multi-user.target
systemctl enable my_shutdown.service
或者,可以手动创建符号链接:
ln -s /usr/lib/systemd/system/my_shutdown.service /etc/systemd/system/multi-user.target.wants/my_shutdown.service
systemctl start my_shutdown.service
我的理解:
参考文献:
您可以触发事件,如推日志S3上的特定事件,CloudWatch的......这里了解更多:https://aws.amazon.com/cloudwatch/
更深连结[CloudWatch的EC2活动](http://docs.aws。 amazon.com/AmazonCloudWatch/latest/DeveloperGuide/EventTypes.ht ml#ec2_event_type)可能会有帮助,在这里。但是,一旦某个实例开始关闭,考虑尝试保留日志或导出任何内容可能会有点晚。系统通过模拟短按电源按钮来停止实例。自动扩展组具有可中断的状态更改,而实例实例有2分钟的警告,但对于其他实例,关闭时的自主内部清除操作可能不切实际。 –
采取点,迈克尔 - sqlbot。感谢更深层次的联系。 – hephalump