나는이 일을하려고 벽에 머리를 세게 치고있었습니다. python/boto를 사용하여 실패한 ec2 인스턴스를 복구하는 cloutwatch 경보를 생성하려고합니다. ec2 : RecoverInstance 작업을 수행하는 데 문제가 있습니다. 내 주제가 올바르게 설정되지 않은 것 같습니다.Boto/Cloudwatch 인스턴스 알람 복구
topics = sns_conn.get_all_topics()
topic = topics[u'ListTopicsResponse']['ListTopicsResult']['Topics'][0]['TopicArn']
# arn:aws:sns:us-east-1:*********:CloudWatch
status_check_failed_alarm = boto.ec2.cloudwatch.alarm.MetricAlarm(
connection=cw_conn,
name=_INSTANCE_NAME + "RECOVERY-High-Status-Check-Failed-Any",
metric='StatusCheckFailed',
namespace='AWS/EC2',
statistic='Average',
comparison='>=',
description='status check for %s %s' % (_INSTANCE, _INSTANCE_NAME),
threshold=1.0,
period=60,
evaluation_periods=5,
dimensions={'InstanceId': _INSTANCE},
# alarm_actions = [topic],
ok_actions=[topic],
insufficient_data_actions=[topic])
# status_check_failed_alarm.add_alarm_action('arn:aws:sns:us-east-1:<acct#>:ec2:recover')
# status_check_failed_alarm.add_alarm_action('arn:aws:sns:us-east-1:<acct#>:ec2:RecoverInstances')
status_check_failed_alarm.add_alarm_action('ec2:RecoverInstances')
cw_conn.put_metric_alarm(status_check_failed_alarm)
모든 의견을 보내 주시면 감사하겠습니다.
감사합니다. --MIke
여기서'topic'은 정의되어 있습니다. 모든 주제를 쿼리 할 수 있습니다 (예 : 'sns = connect_to_region (...); topics = sns.get_all_topics()'또는 AWS 관리 콘솔에서 SNS ARN을 찾으십시오. 'arn : aws : sns : : : '과 같이 보일 것입니다. –
AChampion
안녕하세요 AChampion - 주제 검색 부분을 표시하도록 코드를 업데이트했습니다. –