import boto3
import json
import logging
import os

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

logger.info('Loading function, boto3 version: {}'.format(boto3.__version__))

STATEMACHINE_ARN = os.environ['STATEMACHINE_ARN']

c_sfn = boto3.client('stepfunctions')

def lambda_handler(event, context):
    #logger.info("event: {}".format(event))
    logger.info(json.dumps(event, indent=4))

    try:
        logger.info("len: {}".format(len(event['Records'])))
        logger.info("event type: {}".format(event['Records'][0]['dynamodb']['NewImage']['eventType']['S']))
    
        record = event['Records'][0]['dynamodb']
        logger.info("record: {}".format(record))
        logger.info("event type: {}".format(record['NewImage']['eventType']['S']))
    
        logger.info(json.dumps(record, indent=2))
        input = json.dumps(record)
        logger.info(input)
    
        logger.info("STATEMACHINE_ARN: {}".format(STATEMACHINE_ARN))
        response = c_sfn.start_execution(
            stateMachineArn=STATEMACHINE_ARN,
            input=input
        )
    
        logger.info("response: {}".format(response))
    
        return record
    except Exception as e:
        logger.error('{}'.format(e))
        return False