def lambda_handler()

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
    }