Ich habe mich gefragt, wo die mit Flask erstellte Anwendung bereitgestellt werden soll. Sie ist in Official Deployment Document geschrieben. Ich habe beschlossen, es mit Heroku und dotCloud zu versuchen. Heroku war in Documentation nicht sehr abhängig von Flask, aber ich war süchtig nach dotCloud, also machte ich mir eine Notiz. Oh, es ist nicht so, dass Heroku gut und dotCloud schlecht ist! Ich möchte es eher mit dotCloud betreiben.
Die Dokumentation auf der Kolbenseite
Da es geschrieben ist, handelt es sich um eine grundlegende WSGI, und Flask ist für WSGI eingerichtet. Beim Lesen des ersteren ist die eigentliche Arbeit wie die letztere.
Da ich Heroku zum ersten Mal gemacht habe, war es jedoch nicht so konfiguriert, dass es in das Paket "__init __. Py" geschrieben wurde. Erstellen Sie ein Paketverzeichnis und verschieben Sie etwas wie "app.py" nach "__init __. Py". Dann schreibe wsgi.py
. Wenn Sie in dotcloud.yml
kein Approot angegeben haben, geben Sie wsgi.py
in das Stammverzeichnis ein. Bitte beachten Sie, dass dies vom vorherigen Dokument abweicht. Nun, auch das erstere steht am Anfang
Your WSGI callable should be named “application”, be located in a “wsgi.py” file, itself located at the top directory of the service.
Obwohl es geschrieben ist, wird in der nachfolgenden Prozedurerklärung der Ansatz angegeben.
Es beginnt also zu funktionieren, aber damit stoppt das Sample. Die App, die ich bereitstellen wollte, verwendete die Twitter-API, daher muss ich den Schlüssel eingeben. Ich möchte den Schlüssel definitiv nicht in SCM stecken. In Heroku wurde es in config: add festgelegt. Sie können es jetzt von os.environ lesen.
Verwenden Sie für dotCloud var set. Die Spezifikationsmethode war fast die gleiche wie bei Heroku, daher bleibt der Code derselbe ... aber er funktioniert überhaupt nicht! Wenn Sie das Dokument sorgfältig lesen, müssen Sie environment.json lesen. Ich habe den Code neu geschrieben, um ihn hier zu lesen.
Damit konnte ich es an den Punkt bringen, an dem es sich bewegen konnte. Ich habe den datenbankbezogenen Teil noch nicht berührt.
Ich fühle mich nicht so süchtig danach, aber er hat die Sucht gelöst.
dotcloud logs appname.www
Der wichtigste Punkt ist, dass es schwierig war, weil ich es zuerst nicht wusste. Ich fand heraus, dass Heroku-Protokolle in Herokus Python-Tutorial enthalten waren, aber dotCloud schien es nicht zu haben, also muss ich es selbst finden. hätten. Dies sind die Beratungsprotokolle (http://docs.dotcloud.com/guides/logs/) in den Plattformhandbüchern links von der Dokumentation. Es ist ein großer Fortschritt, seit ich das gefunden habe. Als ich es ohne Festlegen von Umgebungsvariablen ausführte und einen Fehler bekam, dauerte es eine Weile, bis ich die Ursache kannte. Wenn ich mir das Protokoll ansehe, fühlt es sich so an. Wenn Sie nicht weiterkommen, schauen Sie sich das Protokoll an!
Recommended Posts