Skip to content

Framework for writing serverless APIs in Python, using Scaleway functions and containers.

License

Notifications You must be signed in to change notification settings

scaleway/serverless-api-framework-python

Repository files navigation

Serverless API Framework

PyPI version Documentation Status pre-commit.ci status

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.py

Quickstart

Install

pip install scw-serverless

This will install the scw-serverless CLI:

scw-serverless --help

Writing and configuring functions

You 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.

Local testing

Before deploying, you can run your functions locally with the dev command:

scw-serverless dev app.py

This 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.

Deploying

When you are ready, you can deploy your function with the scw-serverless CLI tool:

scw-serverless deploy app.py

The tool will use your Scaleway credentials from your environment and config file.

What’s Next?

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.

Contributing

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