繁体   English   中英

如何设置有关将要关闭的实例的AWS通知?

[英]How do I set up an AWS notification about an instance that is going to be shut down?

我们有几个AWS EC2实例,为此我们设置了与Cloudwatch事件挂钩的Lambda函数。 一个Lambda函数在8:00 AM启动实例,然后在6:00 PM关闭实例。 我想要的是一种通知用户实例即将关闭的方法,可能要提前15分钟。 是否有任何方法可以遍历实例并创建一条消息,告知用户instance1和instance2将要关闭? 我们的Lambda函数代码直接来自示例:

import boto3

# Enter the region your instances are in, e.g. 'us-east-1'
region = 'us-east-1'

# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']# 
instances = ['X-XXXXXXXX', 'X-XXXXXXXX']

def lambda_handler(event, context):
    ec2 = boto3.client('ec2', region_name=region)
    ec2.start_instances(InstanceIds=instances)
    print 'started your instances: ' + str(instances)

任何输入都会有很大帮助。

在EC2中,默认情况下,从内部停止实例(例如sudo haltsudo poweroff )与通过API停止实例完全相同-它们会转换为控制台中的Stopped状态,您无需付费就像您通过要求API停止它们来停止它们一样。

命令shutdown -h +15将要求系统在15分钟内关闭自身,并将向所有tty广播警告。

因此...可以想象,您可以提前15分钟从Lambda为每个实例调用EC2 RunCommand ,而不是使用shutdown函数,而是在每个系统上远程运行shutdown命令。

或者,如果这些系统每天都这样做,则只需将关机置于crontab中即可。

除非我对这个问题有误解,否则代码将与您已有的代码几乎相同。

复制您的Lambda函数以关闭实例。 修改此版本以发送电子邮件(通过SES),而不是实际关闭服务器。 安排此新的Lambda函数在关闭函数运行之前15分钟运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM