Framework Frankfurt, Duitsland

Deploy FastAPI op Nodion

Nodion herkent FastAPI of Starlette in je dependencies, installeert ze met het eigen Python-buildpack en start Uvicorn op je main.py of app.py. Migraties kunnen draaien als releasestap voordat elke nieuwe versie live gaat, en de API draait in Frankfurt, desgewenst naast een managed PostgreSQL-database.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Herkend aan
FastAPI of Starlette in je dependencies
Start
uvicorn main:app, één proces
Python
3.10 tot en met 3.15, standaard 3.13
Regio
EU Central (Frankfurt)

FastAPI stap voor stap deployen

  1. Installeer FastAPI met Uvicorn Nodion start Uvicorn, maar installeert het niet. fastapi[standard] bevat het; met alleen fastapi voeg je uvicorn zelf toe. Leg de Python-versie vast in .python-version, want een bereik kiest de nieuwste release. requirements.txt
    fastapi[standard]
  2. Zet de app in main.py of app.py Nodion kiest uit main.py en app.py het bestand dat FastAPI of Starlette bevat en voert uvicorn main:app of uvicorn app:app uit op 0.0.0.0 en de PORT die Nodion instelt. Beantwoord / met status 200: dat is het standaardpad van de health check. main.py
    from fastapi import FastAPI
    
    app = FastAPI()
    
    
    @app.get("/")
    def root():
        return {"status": "ok"}
  3. Pakketstructuur? Voeg een web-regel toe Staat je app in een pakket zoals app/main.py, dan is er in de root geen bestand om te vinden. Geef de module zelf op in een Procfile; de regel vervangt het standaardcommando. Procfile
    web: uvicorn app.main:app --host 0.0.0.0 --port $PORT
  4. Draai migraties bij elke deployment Met Alembic draait een release:-regel één keer per build, na de build en voordat de nieuwe versie start. Mislukt hij, dan stopt de deployment en blijft de draaiende versie live. Procfile
    release: alembic upgrade head
  5. Maak de app en de database aan Maak een applicatie aan vanuit je repository in de regio EU Central, daarna een PostgreSQL-database in dezelfde regio, en koppel die op het tabblad Environment: bij de volgende deployment komt die binnen als DATABASE_URL. Markeer API-sleutels als secret en push dan.

Goed om te weten

  • TrustedHostMiddlewareDe health check van Nodion roept elke instantie aan via het interne adres, en dat staat niet in allowed_hosts. De middleware antwoordt dus 400 en de release gaat nooit live. Voeg daarna een functie met @app.middleware("http") toe die 200 teruggeeft voor /healthz (Starlette voert de laatst toegevoegde middleware als eerste uit), en stel in de app-instellingen /healthz in als pad van de health check.
  • Meer dan één workerStandaard draait er één Uvicorn-proces. Wil je er meer, zet dan web: uvicorn main:app --host 0.0.0.0 --port $PORT --workers 2 in een Procfile of draai meer instanties van het webproces.
  • DATABASE_URL en SQLAlchemyDe DATABASE_URL van Nodion begint met postgres://, en dat accepteren SQLAlchemy 1.4 en nieuwer niet. Vervang het schema voordat je de URL doorgeeft, bijvoorbeeld door postgresql+psycopg:// voor psycopg 3. Dat schema werkt met synchrone en asynchrone engines.

Wat Nodion voor je regelt

  • Deploys zonder downtime Push naar je branch en Nodion bouwt een nieuwe release. Het verkeer schakelt over zodra de nieuwe instanties hun health check doorstaan; een mislukte release laat de draaiende versie staan. Apps met een lokaal volume herstarten in plaats daarvan, omdat de schijf bij één instantie hoort.
  • Databases naast de app Managed PostgreSQL, pgvector, MySQL, Valkey en ClickHouse in dezelfde regio. Gekoppelde databases komen binnen als DATABASE_URL, REDIS_URL of CLICKHOUSE_URL.
  • Previews per pull request Zet previews aan en pull requests uit je repository krijgen een eigen app met een eigen URL en nieuwe, lege databases, automatisch of handmatig aangemaakt. Forks en pull requests van bots worden overgeslagen.
  • Workers, cronjobs en schalen Draai workers als extra processen van dezelfde app, plan jobs op het tabblad Cron en schaal elk proces naar maximaal 16 instanties.
  • Releasestap Met buildpacks draait een release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat.
  • Logs en metrics Build-, release- en runtimelogs plus metrics voor CPU, geheugen, schijf en netwerk van elke instantie in het dashboard.
  • Domeinen en HTTPS Een standaardhostnaam met HTTPS vanaf de eerste deploy; je eigen domeinen krijgen automatisch certificaten.

Verder lezen

FastAPI op Nodion: vragen en antwoorden

Draait Nodion FastAPI met meerdere workers?

Standaard niet: Nodion start één Uvicorn-proces. Voeg --workers 2 of meer toe aan je eigen web:-regel, of schaal het webproces naar meer instanties.

Waarom wordt mijn FastAPI-deployment nooit klaar voor gebruik?

De health check heeft een 2xx of 3xx nodig op /. Een API zonder rootroute antwoordt 404, en TrustedHostMiddleware antwoordt 400 op het interne adres. Voeg een route toe, of stel in de app-instellingen een pad zoals /healthz in en beantwoord dat vóór de hostcontrole.

Werken Starlette-apps ook?

Ja. Met Starlette in je dependencies geldt hetzelfde standaardcommando met Uvicorn, dat app zoekt in main.py of app.py.

Waar draait mijn FastAPI-app?

In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.

Kan ik FastAPI gebruiken volgens de AVG (GDPR)?

Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.

Wat kost het om FastAPI op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 3.50 EUR per maand: App 2 EUR, PostgreSQL 1.50 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.

Kan ik een eigen domein gebruiken voor mijn FastAPI-app?

Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.