def lambda_handler()

in source/solution_deploy/source/createCustomAction.py [0:0]


def lambda_handler(event, context):
    response_data = {}
    physical_resource_id = ''
    err_msg = ''

    properties = event.get('ResourceProperties', {})
    logger_obj.info(json.dumps(properties)) 
    account_id = boto3.client('sts').get_caller_identity()['Account']
    customAction = CustomAction(account_id, properties)
    physical_resource_id = 'CustomAction' + properties.get('Id', 'ERROR')

    try:
        status = 'ERROR'
        if event['RequestType'].upper() == 'CREATE' or event['RequestType'].upper() == 'UPDATE':
            logger_obj.info(event['RequestType'].upper() + ': ' + physical_resource_id)
            custom_action_result = customAction.create()
            if custom_action_result == 'FAILED':
                status = 'FAILED'
            else:
                response_data['Arn'] = custom_action_result
                status = 'SUCCESS' 

        elif event['RequestType'].upper() == 'DELETE':
            logger_obj.info('DELETE: ' + physical_resource_id)
            status = customAction.delete()

        else:
            err_msg = 'Invalid RequestType: ' + event['RequestType']
            logger_obj.error(err_msg)

        cloudformation = CfnResponse(
            event,
            context,
            status,
            response_data,
            physical_resource_id,
            err_msg
        )
        cloudformation.send()
        return

    except Exception as err:
        logger_obj.error('An exception occurred: ')
        err_msg = err.__class__.__name__ + ': ' + str(err)
        logger_obj.error(err_msg)