No project description provided
Project description
PyFunc
This package provides a mechanism to write Function-as-a-Service style code in Python for handling HTTP events, including CloudEvents delivered via HTTP.
This framework is primarily intended to work with Knative, but also works to provide a generic server for handling CloudEvents over HTTP (e.g. from Kubernetes or on a local machine).
The framework uses reflection to find a suitable function to wrap; it should not be necessary to import any of the following modules in your own code unless you want (e.g. for type definitions):
pyfunc
(this module; on PyPi aspyfunc
)flask
cloudevents
Instead, simply ensure that you have a single non-_
prefixed function which
uses some combination of the following:
- HTTP request arguments (named
req
,request
,body
,headers
or of theflask.Request
type) - CloudEvent arguments (named
event
,payload
,data
,attributes
or of thecloudevents.sdk.event.v1.Event
type)
Usage:
import logging
from typing import Any
counter = 0
def handler(data: Any, attributes: dict, req: Any):
global counter
counter = counter + 1
logging.info(f"Got data: {data}")
logging.info(f"From {req.origin}, my {counter}th request!")
attributes["type"] = "com.example.reply"
attributes["datacontenttype"] = "text/plain"
return attributes, "It's a demo"
Usage
To check the current working directory for a module called handler
and function handler
:
python -m pyfunc
To check the current working directory for a module called myhandler
and function func
:
PYTHON_HANDLER=myhandler.func python -m pyfunc
To check a specific directory ./myfuncs/http/
for a module called handler
and function handler
:
python -m pyfunc ./myfuncs/http/
To check a specific directory ./myfuncs/http/
for a module called myhandler
and function func
:
PYTHON_HANDLER=myhandler.func python -m pyfunc ./myfuncs/http/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyfunc_invoker-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7c73803f5b80e9779b56fb346ac515fa21b24d4e6eb0dc20aa5474a697e0df |
|
MD5 | 4767e9e08e02eaf8b212c8295ad3144d |
|
BLAKE2b-256 | 78a859e2d39565d76edc42874198cac7f1bbae07f92d1a459230c79d2359dbb0 |