Amazon web services EC2实例重新启动时发送SNS通知
我需要一个步骤的帮助。我知道我们可以在实例停止、终止、启动和挂起阶段发送SNS通知。但是当EC2实例重新启动时,我们如何发送通知呢 谢谢 如果在实例中重新启动,AWS将不会检测到。这只是操作系统在做自己的事情 如果通过AWS管理控制台或API调用重新启动,则实例的状态实际上不会改变。发件人: 重新启动实例相当于重新启动操作系统。实例保留在同一台主机上,并维护其公用DNS名称、专用IP地址及其实例存储卷上的任何数据。重新启动通常需要几分钟才能完成,但重新启动所需的时间取决于实例配置 因此,对通过AWS控制台或API发出的重新启动命令作出反应的唯一方法是创建一个AWS CloudWatch事件规则,该规则接收所有Amazon EC2事件,然后检查它是否专门用于重新启动命令 规则如下所示:Amazon web services EC2实例重新启动时发送SNS通知,amazon-web-services,amazon-ec2,amazon-sns,Amazon Web Services,Amazon Ec2,Amazon Sns,我需要一个步骤的帮助。我知道我们可以在实例停止、终止、启动和挂起阶段发送SNS通知。但是当EC2实例重新启动时,我们如何发送通知呢 谢谢 如果在实例中重新启动,AWS将不会检测到。这只是操作系统在做自己的事情 如果通过AWS管理控制台或API调用重新启动,则实例的状态实际上不会改变。发件人: 重新启动实例相当于重新启动操作系统。实例保留在同一台主机上,并维护其公用DNS名称、专用IP地址及其实例存储卷上的任何数据。重新启动通常需要几分钟才能完成,但重新启动所需的时间取决于实例配置 因此,对通过A
{
"source": [
"aws.ec2"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"ec2.amazonaws.com"
],
"eventName": [
"RebootInstances"
]
}
}
然后,它可以触发Amazon SNS通知,其中包括实例ID
然而,通知不是很漂亮——它由一团JSON组成。如果要发送外观更好的消息,请参阅:您可以在实例上创建一个cron条目,该条目将执行@reboot(),并使用aws cli发送sns通知。您可以使用crontab和@reboot来运行脚本
$ crontab -e
@reboot $(python /home/ec2-user/sms.py)
对于python脚本sms.py
at/home/ec2 user
sms.py(如果需要,更改AWS区域):
确保实例上安装了boto3-$pip install boto3--user
import boto3
import json
client = boto3.client('sns', region_name='us-west-2')
msg = 'Instance reboot!'
response = client.publish(
PhoneNumber='+1XXXXXXXXXX',
Message=msg)
print(response)