in source/lambda/alb_alarm_check_lambda_handler.py [0:0]
def lambda_handler(event, context):
logger.info(json.dumps(event, default=util.datetime_handler))
if len(event['Records']) == 0:
logger.warning('No SQS message: ')
return
message = event['Records'][0]['body']
alb_alarm_status_message = ALBAlarmStatusMessage.from_json(
json.loads(message))
alb_listener_rules_handler = ALBListenerRulesHandler(
elbv2_client, alb_alarm_status_message.load_balancer_arn,
alb_alarm_status_message.elb_listener_arn, alb_alarm_status_message.target_group_arn,
alb_alarm_status_message.elb_shed_percent, alb_alarm_status_message.max_elb_shed_percent,
alb_alarm_status_message.elb_restore_percent, alb_alarm_status_message.shed_mesg_delay_sec,
alb_alarm_status_message.restore_mesg_delay_sec)
alb_alarm_action = alb_listener_rules_handler.handle_alarm_status_message(
cw_client, elbv2_client, sqs_client, alb_alarm_status_message)
return {
'statusCode': 200,
'message': 'New Alarm State:' + alb_alarm_action.name
}