要通过AWS CloudWatch触发EC2实例的重启,您可以使用AWS Systems Manager Run Command来重新启动实例。以下是一个示例代码,演示如何使用AWS SDK for Python(Boto3)执行此操作:
import boto3
def restart_ec2_instances(instance_ids):
ssm_client = boto3.client('ssm')
response = ssm_client.send_command(
DocumentName='AWS-RunShellScript',
Parameters={'commands': ['sudo reboot']},
InstanceIds=instance_ids,
)
command_id = response['Command']['CommandId']
print(f"Command ID: {command_id}")
# 要重启的EC2实例ID列表
instance_ids = ['i-1234567890abcdef0', 'i-0987654321fedcba0']
restart_ec2_instances(instance_ids)
在此示例中,我们使用AWS Systems Manager的AWS-RunShellScript文档来运行重启命令(sudo reboot
)。要运行此代码,您需要确保您的AWS凭证已正确配置,并且Boto3库已正确安装。
请注意,使用此方法重启EC2实例会导致实例立即停止并重新启动。确保您了解此操作的影响,并谨慎使用此代码。