django separate Web & API-Endpunkte auf Heroku bereitstellen

9

Ich habe eine Webanwendung mit einer zugehörigen API und Datenbank.

Ich würde gerne die gleichen Django-Modelle in der API verwenden, aber sie werden separat von verschiedenen Prozessen bedient, sodass ich sie unabhängig skalieren kann.

Ich brauche auch nicht die API, um statische Assets oder eine der anderen Sichten zu liefern.

Die Komplikation besteht darin, dass die Routen, die ich definiert habe, die API und die Webanwendung haben, die sich die Stammdomäne teilen:

%Vor%

und zusätzlich sind meine Django-Apps von den Modellen und Konstanten des jeweils anderen abhängig (also lösen zwei verschiedene settings.py -Dateien mit verschiedenen INSTALLED_APPS es nicht ganz).

Ich denke, eine Möglichkeit besteht darin, verschiedene Prozesse in meinem Procfile zu definieren, die nur die Django-App starten, aber in einem der Prozesse möglicherweise andere Umgebungsvariablen haben? Ich glaube nicht, dass ich die Umgebung pro Proc mit heroku:config ändern kann, ich denke es müsste tatsächlich eine Direktive im Procfile sein.

Hat jemand irgendwelche Erfahrungen oder Einsichten mit diesem? Danke!

    
lollercoaster 02.07.2015, 16:49
quelle

2 Antworten

2

Wie Daniel sagte, könnten Sie einfach zwei Einstellungsdateien mit einer gemeinsamen Basis verwenden. Wenn Sie eine Teilmenge der URLs bereitstellen möchten, sollten Sie auch separate URL-Definitionen in der Einstellung ROOT_URLCONF erstellen.

Also wäre Ihre Projektstruktur etwa so:

%Vor%

settings / normal.py (analog für api) wäre ungefähr so:

%Vor%     
jgadelange 11.07.2015, 08:45
quelle
1

Ich glaube nicht, dass Sie verschiedene Umgebungsvariablen benötigen, nur eine separate WSGI-Datei, die auf eine andere settings.py verweist. Diese Einstellungsdatei kann freigegebene Einstellungen aus einer gemeinsamen Datei importieren und dann ihre jeweiligen Werte für INSTALLED_APPS festlegen. Dann kann das Procfile auf diese wsgi-Dateien in separaten Prozessen verweisen.

    
Daniel Roseman 02.07.2015 16:57
quelle

Tags und Links