Serverless API Framework is a tool that lets you write and deploy serverless functions in Python. It bridges your code with the deployment configuration to make it a breeze to work with serverless functions.
Starts by defining a simple Python function:
from scw_serverless import Serverless
app = Serverless("hello-namespace")
@app.func(memory_limit=256)
def hello_world(event, context):
return "Hello World!"Deploy it with scw-serverless:
scw-serverless deploy app.pypip install scw-serverlessThis will install the scw-serverless CLI:
scw-serverless --helpYou can transform your Python functions into serverless functions by using decorators:
import os
import requests
from scw_serverless import Serverless
app = Serverless("hello-namespace")
API_URL = os.environ["API_URL"]
@app.func(memory_limit=256, env={"API_URL": API_URL})
def hello_world(event, context):
return requests.get(API_URL)The configuration is done by passing arguments to the decorator. To view which arguments are supported, head over to this documentation page.
Before deploying, you can run your functions locally with the dev command:
scw-serverless dev app.pyThis runs a local Flask server with your Serverless handlers. If no relative_url is defined for a function, it will be served on /name with name being the name of your Python function.
By default, this runs Flask in debug mode which includes hot-reloading. You can disable this behavior by passing the --no-debug flag.
When you are ready, you can deploy your function with the scw-serverless CLI tool:
scw-serverless deploy app.pyThe tool will use your Scaleway credentials from your environment and config file.
To learn more about the framework, have a look at the documentation. If you want to see it in action, we provide some examples to get you started.
To run your Python functions locally, check out Scaleway Functions Python.
We welcome all contributions.
This project uses pre-commit hooks to run code quality checks locally. We recommended installing them before contributing.
pre-commit install