Framework Frankfurt nad Menem, Niemcy

Wdróż Flask na Nodion

Nodion rozpoznaje Flask w Twoich zależnościach, instaluje je swoim buildpackiem Pythona i uruchamia Gunicorn z trzema workerami dla Twojego obiektu aplikacji. Migracje mogą działać jako krok release, zanim każda nowa wersja trafi na produkcję, a aplikacja działa we Frankfurcie nad Menem, w razie potrzeby obok zarządzanej bazy danych PostgreSQL.

Wdróż na Nodion ›

od 1 EUR / mies.

Do 15 € środków na start przy rejestracji

Wykrywane po
Flask w Twoich zależnościach
Start
gunicorn app:app, 3 workery
Python
od 3.10 do 3.15, domyślnie 3.13
Region
EU Central (Frankfurt)

Wdróż Flask krok po kroku

  1. Dodaj Gunicorn do zależności Nodion uruchamia Gunicorn, ale go nie instaluje, więc wpisz go obok Flaska. Przypnij wersję Pythona w .python-version, bo zakres w pyproject.toml wybiera najnowsze wydanie. requirements.txt
    flask
    gunicorn
  2. Trzymaj obiekt aplikacji w app.py Nodion bierze pierwszy z plików app.py, application.py i wsgi.py, który zawiera Flask, i uruchamia gunicorn <plik>:app z 3 workerami na porcie PORT ustawionym przez Nodion. Obiekt musi nazywać się app. app.py
    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.get("/")
    def index():
        return "Hello from Frankfurt"
  3. Korzystasz z app factory? Dodaj linię web Przy create_app() nie ma obiektu app na poziomie modułu, który dałoby się znaleźć, więc w pliku Procfile wskaż Gunicornowi funkcję tworzącą aplikację. Ta linia zastępuje domyślne polecenie startowe. Procfile
    web: gunicorn "myapp:create_app()" --bind 0.0.0.0:$PORT --workers 3
  4. Uruchamiaj migracje przy każdym wdrożeniu Jeśli używasz Flask-Migrate, linia release: uruchamia flask db upgrade raz na każdy build, po buildzie i przed startem nowej wersji. Jeśli zakończy się błędem, wdrożenie zostanie zatrzymane, a działająca wersja nadal obsługuje ruch. Procfile
    release: flask --app myapp db upgrade
  5. Utwórz aplikację i bazę danych Utwórz aplikację ze swojego repozytorium w regionie EU Central, następnie bazę danych PostgreSQL w tym samym regionie i podłącz ją w zakładce Environment: przy następnym wdrożeniu pojawi się jako DATABASE_URL. Ustaw swój SECRET_KEY jako zmienną oznaczoną jako sekret, odczytuj go przez os.environ, a potem zrób push.

Warto wiedzieć

  • DATABASE_URL i SQLAlchemyDATABASE_URL dostarczany przez Nodion zaczyna się od postgres://, czego SQLAlchemy 1.4 i nowsze nie akceptują. Zamień schemat, zanim przekażesz URL dalej: postgresql:// dla psycopg2, postgresql+psycopg:// dla psycopg 3.
  • Health checkRuch przełącza się, gdy / odpowie kodem 2xx lub 3xx, więc przekierowanie na stronę logowania wystarczy. Jeśli / zwraca 401 lub 404, dodaj trasę taką jak /healthz i ustaw ją w ustawieniach aplikacji jako ścieżkę health checku.
  • Workery Celery i RQDodaj do pliku Procfile worker: celery -A myapp worker razem z jawną linią web: gunicorn app:app --bind 0.0.0.0:$PORT --workers 3; bez linii web: domyślnym poleceniem staje się pierwszy wpis w Procfile inny niż release:. Następnie w zakładce Processes dodaj proces o nazwie worker bez portu. Valkey w tym samym regionie daje Ci REDIS_URL.

Czym Nodion zajmuje się za Ciebie

  • Wdrożenia bez przestojów Wypchnij zmiany do swojej gałęzi, a Nodion zbuduje nowy release. Ruch przełącza się, gdy nowe instancje przejdą health check; nieudany release nie wpływa na działającą wersję. Aplikacje z lokalnym wolumenem są natomiast uruchamiane ponownie, bo dysk należy do jednej instancji.
  • Bazy danych obok aplikacji Zarządzane PostgreSQL, pgvector, MySQL, Valkey i ClickHouse w tym samym regionie. Podłączone bazy danych trafiają do aplikacji jako DATABASE_URL, REDIS_URL lub CLICKHOUSE_URL.
  • Środowiska podglądu dla pull requestów Włącz środowiska podglądu, a każdy pull request z Twojego repozytorium dostanie własną aplikację z własnym adresem URL i nowymi, pustymi bazami danych, tworzoną automatycznie lub ręcznie. Forki i pull requesty od botów są pomijane.
  • Workery, zadania cron i skalowanie Uruchamiaj workery jako dodatkowe procesy tej samej aplikacji, planuj zadania w zakładce Cron i skaluj każdy proces do 16 instancji.
  • Etap release W przypadku buildpacków linia release: w Procfile uruchamia się przy każdym nowym buildzie. Aplikacje z Dockerfile, a także ponowne wdrożenia i rollbacki do wcześniejszego obrazu, korzystają z polecenia release ustawionego w samej aplikacji, które ma też pierwszeństwo przed linią z Procfile. W przypadku stron statycznych krok release działa w obrazie zawierającym tylko zbudowane pliki.
  • Logi i metryki W dashboardzie znajdziesz logi z builda, release'u i działania aplikacji oraz metryki CPU, pamięci, dysku i sieci dla każdej instancji.
  • Domeny i HTTPS Domyślna nazwa hosta z HTTPS od pierwszego wdrożenia; Twoje własne domeny automatycznie dostają certyfikaty.

Warto przeczytać

Flask na Nodion: pytania i odpowiedzi

Dlaczego moja aplikacja Flask nie uruchamia się?

Zwykle w zależnościach brakuje Gunicorna, obiekt nie nazywa się app albo aplikacja korzysta z app factory. Dodaj gunicorn, zmień nazwę obiektu albo ustaw linię web:, która wywołuje create_app().

Czy Nodion używa flask run albo app.run()?

Nie. Gdy Flask jest w Twoich zależnościach, Nodion uruchamia Gunicorn. Wbudowany serwer Flaska jest przeznaczony do środowiska deweloperskiego, więc zostaw app.run() pod if __name__ == "__main__": do użytku lokalnego.

Ile workerów Gunicorn dostaję?

Domyślnie trzy. Własną liczbę ustawisz przez --workers w linii web:, a gdy jedna instancja nie wystarcza, uruchom więcej instancji procesu web.

Gdzie działa moja aplikacja Flask?

W regionie EU Central we Frankfurcie nad Menem (Niemcy). Build, rejestr, aplikacja oraz jej bazy danych, wolumeny, buckety, logi i metryki pozostają w tym regionie, a API i warstwa sterowania (control plane) Nodion są hostowane w Niemczech. Nodion GmbH ma siedzibę w Stuttgarcie.

Czy mogę wykorzystywać Flask zgodnie z RODO?

Nodion zapewnia do tego podstawy: Nodion GmbH ma siedzibę w Stuttgarcie (Niemcy), w regionie Frankfurt nad Menem aplikacja, jej bazy danych i wolumeny działają w Niemczech, a umowę powierzenia przetwarzania danych (DPA, art. 28 RODO) zawierasz elektronicznie w dashboardzie. To, czy Twoje wdrożenie spełnia wymogi RODO, zależy też od tego, jak skonfigurujesz aplikację i jak z niej korzystasz.

Ile kosztuje uruchomienie Flask na Nodion?

Instancja aplikacji kosztuje od 1 EUR miesięcznie. Konfiguracja z ramki kosztuje 3.50 EUR miesięcznie: Aplikacja 2 EUR, PostgreSQL 1.50 EUR. Ceny są podane netto, a rozliczenie następuje co do sekundy. Większe rozmiary lub więcej instancji możesz wybrać w dowolnym momencie.

Czy mogę użyć własnej domeny dla mojej aplikacji Flask?

Tak. Każda aplikacja dostaje domyślną nazwę hosta z HTTPS. Własną domenę dodasz w zakładce Domains aplikacji, a certyfikat TLS jest wystawiany i odnawiany automatycznie.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.