def handler()

in templates/custom-resources/lex-manager.py [0:0]


def handler(event, context):
    """ CloudFormation Custom Resource Lambda Handler
    """
    import cfnresponse

    logger.info('event: {}'.format(cfnresponse.json_dump_format(event)))
    request_type = event.get('RequestType')
    resource_properties = event.get('ResourceProperties')

    response_status = cfnresponse.SUCCESS
    response = {}
    response_id = event.get('RequestId')
    reason = request_type
    error = ''

    name_prefix = resource_properties.get('NamePrefix')
    should_delete = resource_properties.get('ShouldDelete', True)

    bot_definition = read_bot_definition_file(BOT_DEFINITION_FILENAME)
    bot_definition_prefix =  add_prefix(bot_definition, name_prefix)

    if (request_type in ['Create', 'Update']):
        try:
            response_import = import_bot(bot_definition=bot_definition_prefix)
            response['BotName'] = response_import['bot']['name']
        except Exception as e:
            error = 'failed to {} bot: {}'.format(request_type, e)
            pass

    if (request_type == 'Delete' and should_delete != 'false'):
        try:
            bot_definition = read_bot_definition_file()
            bot_name = name_prefix + bot_definition['bot']['name']
            delete_bot(bot_name)
        except Exception as e:
            error = 'failed to delete bot: {}'.format(e)
            pass

    if error:
        logger.error(error)
        response_status = cfnresponse.FAILED
        reason = error

    if bool(context):
        cfnresponse.send(
            event,
            context,
            response_status,
            response,
            response_id,
            reason
        )