def lambda_handler()

in source/lambda/alb_alarm_lambda_handler.py [0:0]


def lambda_handler(event, context):
    logger.info(json.dumps(event))

    event_type = event['detail-type']
    if event_type == 'Cloudwatch Alarm State Change':
        return {
            "statusCode": 403,
            'message': 'Unsupported event type' + event_type
        }

    alb_alarm_event = ALBAlarmEvent(
        alarm_event_id=event['id'], alarm_arn=event['resources'][0],
        alarm_name=event['detail']['alarmName'],
        cw_alarm_state=CWAlarmState[event['detail']['state']['value']])

    account_id = event['account']
    region = event['region']

    target_group_id = event['detail']['configuration']['metrics'][0]['metricStat']['metric']['dimensions'][
        'TargetGroup']
    target_group_arn = 'arn:aws:elasticloadbalancing:' + \
        region + ':' + account_id + ':' + target_group_id

    alb_listener_rules_handler = ALBListenerRulesHandler(
        elbv2_client, load_balancer_arn, elb_listener_arn, target_group_arn, elb_shed_percent, max_elb_shed_percent,
        elb_restore_percent, shed_mesg_delay_sec, restore_mesg_delay_sec)

    alb_alarm_action = alb_listener_rules_handler.handle_alarm(
        elbv2_client, sqs_client, sqs_queue_url, alb_alarm_event)

    return {
        'statusCode': 200,
        'message': 'Processed alarm:' + alb_alarm_action.name
    }