Python template for OpenFAAS functions using FastAPI
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
Python template for OpenFAAS functions using FastAPI. This template has two flavours, a simple project using fastapi and a more complex with authentication using JWE (encrypted JWT) for improved security.
To run this project locally, you will need to install the prerequisites and follow the installation section.
- This Project depends on OpenFAAS
curl -sSL https://cli.openfaas.com | sudo -E sh
-
Pull the template
faas template pull https://github.com/nullhack/openfaas-fastapi-template/
-
Create a new function
faas new --lang openfaas-fastapi-template myf
or
faas new --lang openfaas-fastapi-jwe-template myf
-
Include the function name as environment variable into the
myf.yml
file... environment: FUNCNAME: myf ...
-
build and publish the function to the server
faas up -f myf.yml
It's possible to directly use the template without OpenFAAS or to test it before pushing to the server.
-
Install requirements
pip install poethepoet poetry # go to the function folder poe install-dev
-
Run tests
poe test
-
Generate API documentation
poe doc
-
Build a docker image for tests
poe docker-build --target test --build-tag 3.10-alpine docker run -ti --rm handler:test-3.10-alpine
-
Build a docker image to run the root files only without running any test
poe docker-build --target prod --build-tag 3.10-alpine --no-test docker run -ti --rm handler:prod-3.10-alpine
For more examples, please refer to the Documentation
- Improve JWE template coverage
See the open issues for a full list of proposed features (and known issues).
Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Eric Lopes - @nullhack
Project Link: https://github.com/nullhack/openfaas-fastapi-template/
This project was created using cookiecutter and nullhack's python-project-template:
Distributed under the MIT License. See LICENSE
for more information.