Dans cet article, j'ai décrit comment publier une application Django sur Internet en utilisant l'environnement flexible de GAE, mais en premier lieu, l'environnement flexible de GAE est __ "version bêta" à compter du 10 juillet 2017 (lundi). Il est __. La page du didacticiel indique également __ "Nous ne recommandons pas de l'utiliser dans un environnement de production." __, veuillez donc lire cet article sur cette base.
référence: Exécutez Django dans l'environnement flexible App Engine
Récemment, je développe personnellement une certaine application Web avec Django, et lorsque je la publie, Azure Web App -web / app-service-web-overview) et Google App Engine J'ai essayé plusieurs services PaaS. Dans cet article, je voudrais écrire le compte rendu du déploiement lors de l'utilisation de Google App Engine (ci-après dénommé GAE), en me concentrant principalement sur les points auxquels j'étais accro.
Quand il s'agit de Django (Python3) dans GAE, j'ai l'impression qu'il n'y a pas beaucoup d'informations disponibles même si je le recherche sur Google, donc j'espère que cela sera utile pour les personnes qui en sont également accros.
Avec le recul, il y a deux raisons pour lesquelles j'en étais accro.
(Comme je suis nouveau sur Django et GAE, il se peut que certains contenus soient «naturels» pour ceux qui y sont habitués.)
Ensuite, j'écrirai les détails ci-dessous.
En premier lieu, GAE a __ "environnement standard" __ et __ "environnement flexible" __, chacun ayant des mécanismes, des restrictions et des utilisations différents. J'étais vraiment dedans parce que je ne le savais pas.
Si vous pensez "Je vais déployer une application Django avec GAE!", Je pense que je vais d'abord essayer google avec "Django Google App Engine". (peut être)
Ensuite, la page suivante atteindra le haut.
Exécution de Django dans l'environnement standard App Engine
Oh, le tutoriel officiel a été un succès. Cela semble fonctionner si vous suivez les étapes!
Veuillez attendre un moment pour vous (je suis) là-bas. Le titre de cette page est «Exécution de Django dans App Engine __ Standard Environment __».
Et puis, si vous regardez cette page Django Getting Started Guide (c'est une page d'un niveau supérieur à la page précédente) ), Dans la colonne du cas où l'environnement standard ne peut pas être utilisé __
Nécessite Python 3 Nécessite une bibliothèque système qui ne peut pas être utilisée dans l'environnement Python App Engine standard
Il est décrit comme.
En d'autres termes, si vous souhaitez écrire une application en Python3 ou la développer à l'aide "d'une bibliothèque système qui ne peut pas être utilisée dans l'environnement Python standard d'App Engine", cet environnement standard ne peut pas être utilisé.
En d'autres termes, même si vous procédez selon la page "Environnement standard" plus tôt, vous serez accro aux restrictions autour de cela. Je n'ai pas remarqué cela et j'ai eu du mal à exécuter Python 3 ou à installer la bibliothèque dans un environnement standard.
Une explication détaillée des différences entre l'environnement standard et l'environnement flexible est résumée à la page suivante.
Environnement flexible App Engine pour les utilisateurs de l'environnement standard App Engine (https://cloud.google.com/appengine/docs/flexible/java/flexible-for-standard-users?hl=ja)
En bref, la méthode de fonctionnement en tant que plate-forme est complètement différente, alors utilisez-la correctement, il semble donc que ce ne soit pas un environnement flexible si vous souhaitez simplement utiliser Python3. Il semble qu'il soit nécessaire de concevoir le système après avoir bien compris ce domaine.
Cette fois, je souhaite déployer le système écrit en Python 3 sur GAE, je vais donc poursuivre le travail en se référant à la page suivante.
Exécutez Django dans l'environnement flexible App Engine
Maintenant, une fois que vous avez trouvé une page de didacticiel à laquelle vous référer, vous pouvez vous y fier pour continuer votre travail.
Cependant, cette procédure est assez longue, et si vous faites cela à partir de 1, vous tomberez progressivement dans l'état de "Que faites-vous pour quoi?"
Dans un tel cas, en tant que guide pour confirmer votre emplacement actuel, il est très efficace pour la santé mentale de comprendre quel type de procédure est nécessaire du début du travail au déploiement, je vais donc le résumer ici.
Les éléments sont les suivants.
Regardons chacun de plus près. La procédure de travail spécifique est celle décrite dans le document, je vais donc l'omettre. Le but ici est d'obtenir une vue d'ensemble.
GAE est l'un des services cloud fournis par Google, appelé Google Cloud Platform (GCP). Tout comme AWS propose divers services tels que EC2, Lambda et S3, GCP propose également divers services tels que GAE, Cloud Storage (qui sortira plus tard) et Big Query. GAE est l'un d'entre eux, n'est-ce pas?
Par conséquent, commencez par créer un compte (vous pouvez utiliser votre compte Gmail tel quel) pour commencer à utiliser GCP. Veuillez également définir la facturation ici.
Dans GCP, divers services sont combinés en un seul système en unités appelées «projets». Commençons par créer un projet. Suivez le tutoriel pour ouvrir la page de la console GCP et créer un projet.
L'ID du projet créé ici sera utilisé plus tard, il sera donc plus facile de travailler si vous l'écrivez sous forme de texte quelque part.
Pour faire fonctionner chaque service GCP, y compris GAE, à partir de la ligne de commande, vous devez installer le SDK Google Cloud.
Il y a certaines choses à faire, comme installer la commande elle-même, configurer le compte, vérifier l'opération, etc., c'est donc aussi la procédure (page séparée Je vais procéder un par un en regardant mac)).
Ni Django ni Rails ne peuvent continuer à utiliser SQLite, qui a été utilisé dans l'environnement de développement, dans l'environnement de production. Lorsque vous déployez l'application, vous devez préparer du RDB et réécrire les paramètres pour vous y connecter.
GAE explique comment utiliser Cloud SQL, qui est l'un des mêmes services GCP, en tant que didacticiel.
Il y a beaucoup de choses à faire, comme activer Cloud SQL sur la console GCP, créer une instance, créer un utilisateur root, contrôler l'accès et créer un environnement dans lequel vous pouvez vous connecter, alors ne vous perdez pas non plus ici. S'il vous plaît soyez prudente.
De plus, il semble que les instances Cloud SQL disposent de 1ère génération et 2ème génération, mais lors de son utilisation dans un environnement flexible, il semble que la 2ème génération soit toujours utilisée.
Une fois les différents paramètres définis, décrivez les paramètres dans le fichier settings.py
de l'exemple de projet cloné à l'étape suivante afin que l'application puisse se connecter à la base de données.
Si vous essayez de déployer votre propre application soudainement, il sera difficile d'isoler la cause lorsqu'une erreur se produit, telle que la relation entre la version de la bibliothèque, le contenu du fichier de paramètres requis pour GAE et la préparation inadéquate du déploiement vers GAE en premier lieu. Je vais.
Commencez par cloner l'exemple de projet comme décrit dans la procédure, ne modifiez que les paramètres de connexion à la base de données et déployez-le une seule fois dans l'environnement flexible GAE.
Après avoir confirmé que la page Hello World préparée s'affiche sans aucun problème, passez à l'étape suivante.
Une fois que cela est fait, portez progressivement votre application vers l'exemple de projet que vous venez de déployer, déployez-le, vérifiez le fonctionnement et confirmez que votre application fonctionne sur Internet sans aucun problème.
Généralement, différentes versions de Django et Python lui-même, différentes bibliothèques, différentes bases de données, etc. entraîneront des erreurs différentes des locales, il est donc recommandé de procéder petit à petit pour faciliter l'isolement de la cause.
Pour les erreurs telles que la bibliothèque introuvable, ajoutez la description de la bibliothèque que vous utilisez à requirements.txt
dans pip freeze> requirements.txt
et oubliez de l'installer lorsque vous déployez sur GAE. Il ne faut pas.
Avec cela, nous pouvons enfin voir le flux de développement d'applications → version de production. Il est bon de voir votre application fonctionner de manière non locale.
Après cela, vous aurez envie de répéter l'ajout et le déploiement de fonctions en utilisant la même procédure.
Cette fois, j'ai déployé sur la base du projet modèle, mais je comprends les paramètres de l'environnement GAE décrits dans ʻapp.yaml et
settings.py` afin que je puisse modifier les paramètres en fonction de mon application. Je pense qu'il faut aussi devenir.
Cette fois, je me suis concentré sur GAE, mais avant ces essais et erreurs, j'ai rencontré les mêmes essais et erreurs sur Azure Web App, et par conséquent, je n'ai pas pu déployer avec succès.
Une fois l'application déployée, le service PaaS est facile à modifier à partir de là, mais avant cela, vous devez comprendre le mécanisme, les restrictions et la méthode de configuration propres à PaaS. , "Hello World!" J'ai eu une petite impression dure.
De plus, l '"environnement flexible GAE Django (Python3)" utilisé cette fois-ci a été perdu car peu de gens le faisaient au départ, et même si je recherchais sur Google lorsqu'un problème se produisait, je ne trouvais pas les bonnes informations. C'était l'un des principaux facteurs.
J'ai pensé que je devrais écrire dans cet article des erreurs individuelles et des solutions survenues pendant le travail réel, mais je n'ai pas écrit correctement le contenu, ou lorsque j'ai essayé de le résoudre, c'était ma simple erreur de travail. Je vais l'omettre parce que je l'ai fait. Si vous rencontrez des problèmes spécifiques, veuillez commenter. (Je ne sais pas si je peux le résoudre, mais ...)
Recommended Posts