In diesem Artikel habe ich darüber geschrieben, wie eine Django-Anwendung im Internet unter Verwendung der flexiblen Umgebung von GAE veröffentlicht wird. Erstens ist die flexible Umgebung von GAE ab dem 10. Juli 2017 (Montag) __ "Beta-Version". Es ist __. Auf der Tutorial-Seite steht außerdem __ "Wir empfehlen, es nicht in einer Produktionsumgebung zu verwenden." __ Bitte lesen Sie diesen Artikel auf dieser Grundlage.
Referenz: Django in flexibler Umgebung von App Engine ausführen
Kürzlich habe ich persönlich eine bestimmte Webanwendung mit Django entwickelt, und wenn ich sie veröffentliche, Azure Web App Ich habe verschiedene PaaS-Dienste wie -web / app-service-web-summary) und Google App Engine ausprobiert. In diesem Artikel möchte ich den Datensatz bis zur Bereitstellung schreiben, wenn ich Google App Engine (im Folgenden als GAE bezeichnet) verwende, wobei ich mich hauptsächlich auf die Punkte konzentriere, denen ich verfallen bin.
Wenn es um Django (Python3) in GAE geht, habe ich den Eindruck, dass nicht viele Informationen verfügbar sind, selbst wenn ich sie google. Ich hoffe, dass sie für Menschen nützlich sind, die ebenfalls süchtig danach sind.
Rückblickend gibt es zwei Gründe, warum ich süchtig danach war.
(Ich bin neu in Django und GAE. Vielleicht gibt es für diejenigen, die daran gewöhnt sind, Inhalte, die "natürlich" sind.)
Dann werde ich die Details unten schreiben.
Erstens verfügt GAE über __ "Standardumgebung" __ und __ "flexible Umgebung" __, die jeweils unterschiedliche Mechanismen, Einschränkungen und Verwendungszwecke haben. Ich war wirklich begeistert, weil ich das nicht wusste.
Wenn Sie der Meinung sind, dass "ich eine Django-Anwendung mit GAE bereitstellen werde!", Werde ich zuerst Google mit "Django Google App Engine" versuchen. (vielleicht)
Dann wird die folgende Seite oben angezeigt.
Ausführen von Django in der App Engine-Standardumgebung
Oh, das offizielle Tutorial war ein Hit. Dies scheint zu funktionieren, wenn Sie die Schritte befolgen!
Bitte warten Sie einen Moment auf Sie (ich bin) dort. Der Titel dieser Seite lautet "Ausführen von Django in App Engine __ Standardumgebung __".
Und dann, wenn Sie sich diese Seite Django Getting Started Guide ansehen (sie ist eine Seite höher als die vorherige Seite). ), In der Spalte des Falls, in dem die Standardumgebung nicht verwendet werden kann __
Benötigt Python 3 Erfordert eine Systembibliothek, die in der Standard-Python-Umgebung von App Engine nicht verwendet werden kann
Es wird beschrieben als.
Mit anderen Worten, wenn Sie eine Anwendung in Python3 schreiben oder mit "einer Systembibliothek entwickeln möchten, die in der Standard-Python-Umgebung von App Engine nicht verwendet werden kann", kann diese Standardumgebung nicht verwendet werden.
Mit anderen Worten, selbst wenn Sie früher gemäß der Seite für "Standardumgebung" fortfahren, werden Sie von den diesbezüglichen Einschränkungen abhängig sein. Ich habe dies nicht bemerkt und mich bemüht, Python 3 auszuführen oder die Bibliothek in einer Standardumgebung zu installieren.
Eine ausführliche Erläuterung der Unterschiede zwischen der Standardumgebung und der flexiblen Umgebung finden Sie auf der folgenden Seite.
Flexible App Engine-Umgebung für Benutzer der App Engine-Standardumgebung (https://cloud.google.com/appengine/docs/flexible/java/flexible-for-standard-users?hl=ja)
Kurz gesagt, die Betriebsmethode als Plattform ist völlig anders. Verwenden Sie sie daher ordnungsgemäß. Es scheint also keine flexible Umgebung zu sein, wenn Sie einfach Python3 verwenden möchten. Es scheint notwendig zu sein, das System zu entwerfen, nachdem dieser Bereich richtig verstanden wurde.
Dieses Mal möchte ich das in Python 3 geschriebene System für GAE bereitstellen, daher werde ich mit der Arbeit auf der folgenden Seite fortfahren.
Django in flexibler Umgebung von App Engine ausführen
Sobald Sie eine Tutorial-Seite gefunden haben, auf die Sie sich beziehen können, können Sie sich darauf verlassen, dass Sie mit Ihrer Arbeit fortfahren.
Diese Prozedur ist jedoch ziemlich lang, und wenn Sie dies tatsächlich ab 1 tun, werden Sie allmählich in den Zustand "Was machen Sie für was?"
In einem solchen Fall ist es für die psychische Gesundheit als Leitfaden zur Bestätigung Ihres aktuellen Standorts sehr effektiv zu verstehen, welche Art von Verfahren vom Beginn der Arbeit bis zur Bereitstellung durchgeführt wird. Daher werde ich es hier zusammenfassen.
Die Elemente sind wie folgt.
Schauen wir uns jeden einzelnen genauer an. Das spezifische Arbeitsverfahren ist wie im Dokument beschrieben, daher werde ich es weglassen. Der Zweck hier ist, ein Gesamtbild zu erhalten.
GAE ist einer der von Google bereitgestellten Cloud-Dienste namens Google Cloud Platform (GCP). So wie AWS über verschiedene Dienste wie EC2, Lambda und S3 verfügt, verfügt GCP auch über verschiedene Dienste wie GAE, Cloud Storage (wird später veröffentlicht) und Big Query. GAE ist einer von ihnen, nicht wahr?
Richten Sie daher zunächst ein Konto ein (Sie können Ihr Google Mail-Konto so verwenden, wie es ist), um GCP zu verwenden. Bitte stellen Sie hier auch die Abrechnung ein.
In GCP werden verschiedene Dienste in Einheiten, die als "Projekte" bezeichnet werden, zu einem System zusammengefasst. Zuerst erstellen wir ein Projekt. Folgen Sie dem Tutorial, um die GCP-Konsolenseite zu öffnen und ein Projekt zu erstellen.
Die ID des hier erstellten Projekts wird später verwendet, sodass Sie leichter arbeiten können, wenn Sie es irgendwo als Text aufschreiben.
Um jeden GCP-Dienst einschließlich GAE über die Befehlszeile zu betreiben, müssen Sie das Google Cloud SDK installieren.
Es gibt einige Dinge zu tun, wie den Befehl selbst zu installieren, das Konto einzurichten, den Vorgang zu überprüfen usw. Dies ist also auch das Verfahren (separate Seite Ich werde nacheinander fortfahren, während ich mir mac)) ansehe.
Weder Django noch Rails können SQLite, das in der Entwicklungsumgebung verwendet wurde, weiterhin in der Produktionsumgebung verwenden. Wenn Sie die Anwendung bereitstellen, müssen Sie einige RDB vorbereiten und die Einstellungen neu schreiben, um eine Verbindung zu ihr herzustellen.
GAE erklärt die Verwendung von Cloud SQL, einem der gleichen GCP-Dienste, als Lernprogramm.
Es gibt viele Dinge zu tun, z. B. das Aktivieren von Cloud SQL auf der GCP-Konsole, das Erstellen einer Instanz, das Erstellen eines Root-Benutzers, das Steuern des Zugriffs und das Erstellen einer Umgebung, in der Sie sich anmelden können. Verlieren Sie sich also auch hier nicht. Bitte seien Sie vorsichtig.
Darüber hinaus scheinen Cloud SQL-Instanzen die 1. und 2. Generation zu haben, aber wenn sie in einer flexiblen Umgebung verwendet werden, scheint immer die 2. Generation verwendet zu werden.
Beschreiben Sie nach Abschluss verschiedener Einstellungen die Einstellungen in der Datei settings.py
des Beispielprojekts, das im nächsten Schritt geklont wurde, damit die Anwendung eine Verbindung zur Datenbank herstellen kann.
Wenn Sie versuchen, Ihre eigene Anwendung plötzlich bereitzustellen, ist es schwierig, die Ursache zu isolieren, wenn ein Fehler auftritt, z. B. die Beziehung zwischen der Bibliotheksversion, dem Inhalt der für GAE erforderlichen Einstellungsdatei und der unzureichenden Vorbereitung für die Bereitstellung in GAE. Ich werde.
Klonen Sie zunächst das Beispielprojekt wie in der Prozedur beschrieben, ändern Sie nur die DB-Verbindungseinstellungen und stellen Sie es einmal in der flexiblen GAE-Umgebung bereit.
Fahren Sie mit dem nächsten Schritt fort, nachdem Sie bestätigt haben, dass die vorbereitete Hello World-Seite problemlos angezeigt wird.
Sobald dies erledigt ist, portieren Sie Ihre Anwendung schrittweise auf das gerade bereitgestellte Beispielprojekt, stellen Sie es bereit, überprüfen Sie den Vorgang und stellen Sie sicher, dass Ihre Anwendung problemlos im Internet funktioniert.
Im Allgemeinen verursachen verschiedene Versionen von Django und Python selbst, verschiedene Bibliotheken, verschiedene DBs usw. Fehler, die sich von den lokalen unterscheiden. Es wird daher empfohlen, nach und nach vorzugehen, um die Ursache leichter zu isolieren.
Fügen Sie bei Fehlern wie der nicht gefundenen Bibliothek die Beschreibung der verwendeten Bibliothek zu require.txt
mit pip freeze> require.txt
hinzu und vergessen Sie, sie bei der Bereitstellung in GAE zu installieren. Lass uns nicht.
Damit können wir endlich den Ablauf der Anwendungsentwicklung → Produktionsfreigabe sehen. Es ist gut zu sehen, dass Ihre Anwendung nicht lokal funktioniert.
Danach möchten Sie das Hinzufügen und Bereitstellen von Funktionen auf dieselbe Weise wiederholen.
Dieses Mal habe ich basierend auf dem Vorlagenprojekt bereitgestellt, aber ich kann die Einstellungen für die GAE-Umgebung, die in "app.yaml" und "settings.py" beschrieben sind, verstehen und an meine Anwendung anpassen. Ich denke es ist auch notwendig zu werden.
Dieses Mal habe ich mich auf GAE konzentriert, aber vor diesem Versuch und Irrtum habe ich den gleichen Versuch und Irrtum in Azure Web App erlebt und konnte daher nicht erfolgreich bereitstellen.
Sobald die Anwendung bereitgestellt werden kann, kann der PaaS-Dienst von dort aus leicht geändert werden. Zuvor müssen Sie jedoch den Mechanismus, die Einschränkungen und die Einstellungsmethode kennen, die nur für PaaS gelten. , "Hallo Welt!" Ich hatte einen kleinen harten Eindruck.
Außerdem ging die diesmal verwendete "GAE flexible Umgebung Django (Python3)" verloren, da es nur wenige Leute gab, die dies taten, und selbst wenn ich googelte, als ein Problem auftrat, konnte ich nicht die richtigen Informationen finden. Es war einer der Hauptfaktoren.
Ich dachte, ich sollte in diesen Artikel einzelne Fehler und Lösungen schreiben, die während der eigentlichen Arbeit aufgetreten sind, aber ich habe den Inhalt nicht richtig aufgeschrieben, oder als ich versuchte, ihn zu lösen, war es mein einfacher Arbeitsfehler. Ich werde es weglassen, weil ich es getan habe. Wenn Sie spezielle Probleme haben, kommentieren Sie bitte. (Ich weiß nicht, ob ich es lösen kann, aber ...)
Recommended Posts