자동 검사를 사용하지 않고 알람을 사용하여 Amazon EC2 인스턴스를 종료하는 데 boto를 사용하는 방법을 보여주는 간단한 예제를 찾을 수 없었습니다. 10 분 동안 1 % 미만의 CPU 사용률을 가진 특정 인스턴스를 종료하려고합니다. 여기 boto를 사용하여 EC2 인스턴스를 종료하도록 알람을 설정하는 방법은 무엇입니까?
내가 지금까지 시도한 것입니다 :dimensions={'InstanceId':[inst.id]}, alarm_actions=['arn:aws:automate:us-east-1:ec2:terminate']) TypeError: init() got an unexpected keyword argument 'alarm_actions'
나는 그것이 내가 부족 간단하게 뭔가 확신 :
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)
불행하게도 그것은 나에게 오류를 제공합니다.
또한 CloudFormation을 사용하지 않으므로 자동 크기 조정 기능을 사용할 수 없습니다. 그 이유는 알람이 특정 인스턴스에 대해서만 전체 그룹에서 메트릭을 사용하고 특정 인스턴스 (해당 그룹의 인스턴스가 아닌) 만 종료하도록하기 때문입니다.
미리 도움 주셔서 감사합니다.
는 지금은 오류를 받고 있어요 파일 "/usr/lib/python2.6/site-packages/boto-2.0-py2.6.egg/boto/ec2/cloudwatch/__init__.py"545 줄, put_metric_alarm 'Dimensions.member. % s . % s ') build_list_params의 "/usr/lib/python2.6/site-packages/boto-2.0-py2.6.egg/boto/ec2/cloudwatch/__init__.py"파일 237 행 params [label % i] = item TypeError : 형식 문자열에 대한 인수가 충분하지 않습니다. ' – Chewy734
최신 버전이 아닌 boto 2.0이 사용 된 것으로 나타났습니다. 2.25.0으로 업데이트하면 원래 가지고 있던 방식대로 잘 작동합니다. 그래도 고마워! – Chewy734
그래서, 내 대답도 작동합니까? – Rico