当EC2实例停止/终止时,是否有某种方法可以触发事件(例如,运行脚本将某些日志推送到S3)?
我已经考虑过使用/ usr / lib / systemd / system中的服务来触发脚本,但我还没有运气。我听说实例上的网络功能可以在触发服务之前关闭,如果是,则可能是脚本未正确执行的原因。
答案 0 :(得分:1)
所以答案并不是特定于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
我的理解:
参考文献:
答案 1 :(得分:0)
您可以使用CloudWatch触发事件,例如在特定事件上将日志推送到S3 ...在此处了解详情:https://aws.amazon.com/cloudwatch/