我一直无法找到一个简单的例子,显示我如何使用boto以终止通过报警的Amazon EC2实例(不使用自动缩放)。 我要终止具有CPU使用率10分钟,不到1%的具体实例。
以下是我试过到目前为止:
import boto.ec2
import boto.ec2.cloudwatch
from boto.ec2.cloudwatch import MetricAlarm
conn = boto.ec2.connect_to_region("us-east-1", aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
cw = boto.ec2.cloudwatch.connect_to_region("us-east-1", aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
reservations = conn.get_all_instances()
for r in reservations:
for inst in r.instances:
alarm = boto.ec2.cloudwatch.MetricAlarm(name='TestAlarm', description='This is a test alarm.', namespace='AWS/EC2', metric='CPUUtilization', statistic='Average', comparison='<=', threshold=1, period=300, evaluation_periods=2, dimensions={'InstanceId':[inst.id]}, alarm_actions=['arn:aws:automate:us-east-1:ec2:terminate'])
cw.put_metric_alarm(alarm)
不幸的是它给了我这个错误:
尺寸= { 'INSTANCEID':[inst.id]},alarm_actions = [ 'ARN:AWS:自动化:我们-东- 1:EC2:终止'])类型错误: 的init()得到了意想不到的关键字参数'alarm_actions'
我敢肯定,这是一些简单的我失踪。
另外,我不使用CloudFormation,所以我不能使用自动缩放功能。 这是因为我不希望闹钟使用度量整个组,而只对特定的实例,只有终止特定实例(未在该组中的任何实例)。
在此先感谢您的帮助!