Esempio n. 1
0
def main(event, context):
    # pub/sub event data is b64 encoded
    args = json.loads(base64.b64decode(event['data']).decode('utf-8'))

    setup_lithops_logger(args.get('log_level', 'INFO'))

    os.environ['__LITHOPS_ACTIVATION_ID'] = uuid.uuid4().hex
    os.environ['__LITHOPS_BACKEND'] = 'Google Cloud Functions'

    if 'get_preinstalls' in args:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        internal_storage = InternalStorage(
            args['get_preinstalls']['storage_config'])
        object_key = '/'.join(
            [JOBS_PREFIX, args['get_preinstalls']['runtime_name'] + '.meta'])
        logger.info("Runtime metadata key {}".format(object_key))
        runtime_meta = get_runtime_preinstalls()
        runtime_meta_json = json.dumps(runtime_meta)
        internal_storage.put_data(object_key, runtime_meta_json)
    elif 'remote_invoker' in args:
        logger.info(
            "Lithops v{} - Starting Google Cloud Functions invoker".format(
                __version__))
        function_invoker(args)
    else:
        logger.info(
            "Lithops v{} - Starting Google Cloud Functions execution".format(
                __version__))
        function_handler(args)

    return {"Execution": "Finished"}
Esempio n. 2
0
def preinstalls_task():
    setup_logger(logging.INFO)
    logger.info("Lithops v{} - Generating metadata".format(__version__))
    runtime_meta = get_runtime_preinstalls()
    response = flask.jsonify(runtime_meta)
    response.status_code = 200
    logger.info("Done!")

    return complete(response)
Esempio n. 3
0
def runtime_packages(payload):
    logger.info("Lithops v{} - Generating metadata".format(__version__))
    runtime_meta = get_runtime_preinstalls()

    internal_storage = InternalStorage(payload)
    status_key = '/'.join([JOBS_PREFIX, payload['runtime_name'] + '.meta'])
    logger.info("Runtime metadata key {}".format(status_key))
    dmpd_response_status = json.dumps(runtime_meta)
    internal_storage.put_data(status_key, dmpd_response_status)
Esempio n. 4
0
def extract_runtime_meta(encoded_payload):
    logger.info("Lithops v{} - Generating metadata".format(__version__))

    payload = b64str_to_dict(encoded_payload)

    setup_lithops_logger(payload['log_level'])

    runtime_meta = get_runtime_preinstalls()

    internal_storage = InternalStorage(payload)
    status_key = '/'.join([JOBS_PREFIX, payload['runtime_name'] + '.meta'])
    logger.info("Runtime metadata key {}".format(status_key))
    dmpd_response_status = json.dumps(runtime_meta)
    internal_storage.put_data(status_key, dmpd_response_status)
Esempio n. 5
0
def lambda_handler(event, context):
    os.environ['__LITHOPS_ACTIVATION_ID'] = context.aws_request_id

    setup_lithops_logger(event.get('log_level', logging.INFO))

    if 'get_preinstalls' in event:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        return get_runtime_preinstalls()
    elif 'remote_invoker' in event:
        logger.info("Lithops v{} - Starting invoker".format(__version__))
        function_invoker(event)
    else:
        logger.info("Lithops v{} - Starting execution".format(__version__))
        function_handler(event)

    return {"Execution": "Finished"}
Esempio n. 6
0
def main(args):
    os.environ['__LITHOPS_ACTIVATION_ID'] = os.environ['__OW_ACTIVATION_ID']

    setup_logger(args['log_level'], sys.stdout, LOGGER_FORMAT_SHORT)

    if 'get_preinstalls' in args:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        return get_runtime_preinstalls()
    elif 'remote_invoker' in args:
        logger.info("Lithops v{} - Starting IBM CF invoker".format(__version__))
        function_invoker(args)
    else:
        logger.info("Lithops v{} - Starting IBM CF execution".format(__version__))
        function_handler(args)

    return {"Execution": "Finished"}
def main(msgIn: func.QueueMessage, msgOut: func.Out[func.QueueMessage]):
    try:
        args = json.loads(msgIn.get_body())
    except Exception:
        args = msgIn.get_json()

    os.environ['__LITHOPS_ACTIVATION_ID'] = str(msgIn.id)
    setup_lithops_logger(args['log_level'])

    if 'get_preinstalls' in args:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        runtime_meta = get_runtime_preinstalls()
        msgOut.set(json.dumps(runtime_meta))
    elif 'remote_invoker' in args:
        logger.info("Lithops v{} - Starting invoker".format(__version__))
        function_invoker(args)
    else:
        logger.info("Lithops v{} - Starting execution".format(__version__))
        function_handler(args)
Esempio n. 8
0
def main_http(req: func.HttpRequest, context: func.Context) -> str:
    payload = req.get_json()

    setup_lithops_logger(payload['log_level'])

    os.environ['__LITHOPS_ACTIVATION_ID'] = context.invocation_id
    os.environ['__LITHOPS_BACKEND'] = 'Azure Functions (http)'

    if 'get_preinstalls' in payload:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        runtime_meta = get_runtime_preinstalls()
        return json.dumps(runtime_meta)
    elif 'remote_invoker' in payload:
        logger.info("Lithops v{} - Starting Azure Functions (http) invoker".format(__version__))
        function_invoker(payload)
    else:
        logger.info("Lithops v{} - Starting Azure Functions (http) execution".format(__version__))
        function_handler(payload)

    return context.invocation_id
Esempio n. 9
0
def main_queue(msgIn: func.QueueMessage, msgOut: func.Out[func.QueueMessage]):
    try:
        payload = json.loads(msgIn.get_body())
    except Exception:
        payload = msgIn.get_json()

    setup_lithops_logger(payload['log_level'])

    os.environ['__LITHOPS_ACTIVATION_ID'] = str(msgIn.id)
    os.environ['__LITHOPS_BACKEND'] = 'Azure Functions (event)'

    if 'get_preinstalls' in payload:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        runtime_meta = get_runtime_preinstalls()
        msgOut.set(json.dumps(runtime_meta))
    elif 'remote_invoker' in payload:
        logger.info("Lithops v{} - Starting Azure Functions (event) invoker".format(__version__))
        function_invoker(payload)
    else:
        logger.info("Lithops v{} - Starting Azure Functions (event) execution".format(__version__))
        function_handler(payload)
Esempio n. 10
0
def main(event, context):
    args = json.loads(event)
    os.environ['__LITHOPS_ACTIVATION_ID'] = context.request_id
    os.environ['__LITHOPS_BACKEND'] = 'Alibaba Function Compute'

    setup_lithops_logger(args['log_level'])

    if 'get_preinstalls' in event:
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        return get_runtime_preinstalls()
    elif 'remote_invoker' in args:
        logger.info(
            "Lithops v{} - Starting Alibaba Function Compute invoker".format(
                __version__))
        function_invoker(args)
    else:
        logger.info(
            "Lithops v{} - Starting Alibaba Function Compute execution".format(
                __version__))
        function_handler(args)

    return {"Execution": "Finished"}
Esempio n. 11
0
def extract_runtime_meta():
    runtime_meta = get_runtime_preinstalls()
    print(json.dumps(runtime_meta))
Esempio n. 12
0
from lithops.worker import function_invoker
from lithops.worker.utils import get_runtime_preinstalls

logger = logging.getLogger('lithops.worker')

if __name__ == '__main__':
    print(os.environ)
    action = os.getenv('__LITHOPS_ACTION')
    os.environ['__LITHOPS_BACKEND'] = 'AWS Batch'

    if action == 'get_preinstalls':
        lithops_conf_json = os.environ['__LITHOPS_PAYLOAD']
        lithops_conf = json.loads(lithops_conf_json)
        setup_lithops_logger(lithops_conf.get('log_level', logging.INFO))
        logger.info("Lithops v{} - Generating metadata".format(__version__))
        runtime_meta = get_runtime_preinstalls()
        internal_storage = InternalStorage(lithops_conf)
        status_key = lithops_conf['runtime_name'] + '.meta'
        logger.info("Runtime metadata key {}".format(status_key))
        runtime_meta_json = json.dumps(runtime_meta)
        internal_storage.put_data(status_key, runtime_meta_json)
    elif action == 'remote_invoker':
        lithops_payload_json = os.environ['__LITHOPS_PAYLOAD']
        lithops_payload = json.loads(lithops_payload_json)
        logger.info(
            "Lithops v{} - Starting AWS Lambda invoker".format(__version__))
        function_invoker(lithops_payload)
    elif action == 'job':
        lithops_payload_json = os.environ['__LITHOPS_PAYLOAD']
        lithops_payload = json.loads(lithops_payload_json)
        setup_lithops_logger(lithops_payload.get('log_level', logging.INFO))