No project description provided
Project description
Function framework for Python
This framework provides a mechanism to write Function-as-a-Service style code in Python for handling 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).
Usage:
import logging from pyfun_events import Handle,Get counter = 0 # @Handle assumes json body. For string or other body conversion, try: # @Handle(str) @Handle def DoEvent(data: str, context: dict): logging.info(data) counter = counter + 1 @Handle(path="/secret") def DoOther(data: str, context: dict): if data.get("handshake") == "backwards": counter = 0 return "It's gone, man" @Get def Info(): return "Got {0}".format(counter) @Get("/dance"): def Party(): return "<BLINK>Like it's 1999</BLINK>"
Running manually
Copy packaging/config.py
and packaging/requirements.txt
into your
application directory alongside your other code. You can then start the Flaskk webserver running your function with:
FLASK_APP=config flask run
Running on Knative
There is a supplied build template in packaging/build-template.yaml
, which you can apply to your cluster with:
kubectl apply -f packaging/build-template.yaml
or
kubectl apply -f https://github.com/evankanderson/pyfun/tree/master/packaging/build-template.yaml
Then update your Knative Service like so:
apiVersion: serving.knative.dev/v1alpha1 kind: Service metadata: name: message-dumper spec: runLatest: configuration: + build: + source: + git: + url: YOUR_REPO_URL + revision: HEAD + template: + name: pyfn + arguments: + - name: IMAGE + value: YOUR_DOCKER_IMAGE + serviceAccountName: builder revisionTemplate: spec: container: image: YOUR_DOCKER_IMAGE
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyfun_events-0.2.1-py3-none-any.whl (8.0 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size pyfun_events-0.2.1.tar.gz (3.3 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for pyfun_events-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b349f811a58ade8e0a9044596d444f3e02f5b435d3d0b5c497a8e120438d9ab |
|
MD5 | 62c1b8c3f5496691da80b53d5429c2d9 |
|
BLAKE2-256 | 11f0092b6e1078ad4e5e0d482285d4e6bd7435e13e3692b6c7d34c7939b343ec |