[PYTHON] Je souhaite publier le produit au moindre coût

Ravi de vous rencontrer. C'est Taro Man. Je développe généralement des services Web.

introduction

彡 (゜) (゜) "Je veux créer un ** service ** et le publier ~" 彡 (゜) (゜) "Mais c'est ** problème ** de louer un serveur de location ..." 彡 (゜) (゜) "** Frais de serveur ** Je ne veux pas payer ..."

Avez-vous déjà ressenti cela? J'en suis sûr.

Dans ce cas, utilisez le ** Heroku Free Plan **. Dans cet article, j'écrirai sur la façon de publier votre application avec le plan gratuit Heroku.

▷ Le site officiel d'Heroku est ici

Que pouvez-vous faire avec un plan gratuit?

Vous pouvez faire la plupart des choses. Vous pouvez l'utiliser sans aucun problème si vous déployez et exploitez l'application sur le serveur.

Il y a deux restrictions à prendre en compte avec le plan gratuit de Heroku.

-Heures Dyno gratuites (heures de fonctionnement) est de 550 heures / mois ――L'application se met en veille s'il n'y a pas d'accès pendant 30 minutes

Heures Dyno gratuites (temps de disponibilité) 550 heures / mois

Si vous laissez le forfait gratuit d'Heroku par défaut, vous ne bénéficierez que de 550 heures Dyno par mois.

30 jours x 24 heures = 720 heures, donc le plan gratuit ne suffit pas si vous essayez de l'exécuter à pleine capacité pendant un mois.

Cependant, cela peut être résolu si vous avez une ** carte de crédit **.

Même avec le plan gratuit, si vous enregistrez une carte de crédit dans votre compte 450 heures / mois d'heures Dyno gratuites seront ajoutées, vous permettant d'utiliser jusqu'à un total de ** 1 000 heures ** / mois.

L'application se met en veille sans accès pendant 30 minutes

Avec le plan gratuit, l'application se mettra en veille s'il n'y a pas d'accès pendant 30 minutes, La réponse sera lente ** pendant le temps nécessaire au lancement de l'application la prochaine fois que vous y accéderez.

Cependant, cela peut être résolu avec ** Heroku Scheduler **.

Heroku Scheduler est une fonction qui permet l'exécution périodique de commandes spécifiées. C'est comme Linux cron.

En exécutant la ** commande curl ** sur l'URL de l'application dans Heroku Scheduler Vous pouvez continuer à le faire fonctionner sans abandonner l'application.

▷ La méthode de paramétrage de Heroku Scheduler est résumée dans cet article.

Comment déployer sur le serveur

1. Installation des bibliothèques requises

Installez les bibliothèques nécessaires à l'exécution du projet sur Heroku.

pip install gunicorn django-heroku

2. Ajouter un fichier d'environnement d'exécution

Créez un fichier ** directement sous le répertoire du projet ** qui indique à Heroku l'environnement d'exécution du projet.

runtime.txt

Un fichier qui décrit la version Python.

runtime.txt


python-3.6.6

Procfile

Ce fichier contient les commandes pour démarrer le processus Heroku. Remplacez «» par votre propre nom de projet.

Procfile


web: gunicorn <your-project-name>.wsgi --log-file -

requirements.txt Voici une liste des packages dépendants. Sauvegardons le résultat de la commande pip freeze tel quel.

commandline


pip freeze > requirements.txt

3. Modifiez le fichier de paramètres du projet

Modifiez la partie DEBUG = Ture de settings.py pour une utilisation en production.

your-project/settings.py


DEBUG = False

4. Commit avec Git

Créez et validez un dépôt local dans Git.

python


git init                                
git config user.name "Your Name"        
git config user.email [email protected]   
git add .                            
git commit -m "first commit"     

5. Déployer avec la commande Heroku

Déployez sur Heroku avec la commande Heroku. Lorsque la commande heroku login est exécutée, le navigateur sera lancé et il vous sera demandé d'authentifier Heroku. Après vous être connecté, vous pouvez revenir au terminal ** sans quitter le navigateur pour continuer à travailler.

python


heroku login
heroku create <your-app-name>
git push heroku master
heroku ps:scale web=1
heroku run python manage.py migrate

à la fin

Nous espérons que le plus d'ingénieurs possible pourront publier leurs produits dans le monde.

Recommended Posts

Je souhaite publier le produit au moindre coût
Je veux épingler Spyder à la barre des tâches
Je veux sortir froidement sur la console
Je veux gérer la rime part1
Je veux gérer la rime part3
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux gérer la rime part7 (BOW)
Je souhaite personnaliser l'apparence de zabbix
Je souhaite utiliser la fonction d'activation Mish
Je veux afficher la progression en Python!
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
Je veux voir le nom de fichier de DataLoader
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
Je veux bien comprendre les bases de Bokeh
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux gérer la rime part6 (organiser une fois)
Je veux automatiser ssh en utilisant la commande expect!
J'ai essayé de simuler la méthode de calcul de la moyenne des coûts en dollars
Je veux utiliser le jeu de données R avec python
Je veux gérer la rime part8 (fini une fois)
Je souhaite augmenter la sécurité de la connexion SSH
Je souhaite également utiliser les commandes Linux à l'invite de commande! Utilisez les commandes Linux à l'invite de commande au lieu de Git Bash
Je veux résoudre SUDOKU
[TensorFlow] Je souhaite maîtriser l'indexation pour Ragged Tensor
Je veux utiliser la dernière version de gcc même si je n'ai pas les privilèges sudo! !!
Je veux initialiser si la valeur est vide (python)
Je souhaite enregistrer les photos envoyées par LINE vers S3
Je veux déplacer le sélénium pour le moment [pour mac]
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Je veux changer le drapeau japonais en drapeau des Palaos avec Numpy
Je souhaite calculer le temps d'arrêt autorisé à partir du taux de fonctionnement
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je veux connaître la nature de Python et pip
Je veux rendre le type de dictionnaire dans la liste unique
Je souhaite mapper le code EDINET et le numéro de valeur
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux aligner les nombres valides dans le tableau Numpy
Je veux connaître la légende du monde des technologies informatiques
Je veux créer un Dockerfile pour le moment.
Je ne voulais pas écrire la clé AWS dans le programme
Je veux obtenir des informations de fstab à la destination de la connexion ssh et exécuter la commande
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
[Pytorch] Je souhaite attribuer manuellement les paramètres d'entraînement du modèle
Je veux trouver automatiquement des pièces de haute qualité à partir des vidéos que j'ai tournées
Je veux connaître la météo avec LINE bot avec Heroku + Python
[Linux] Je souhaite connaître la date à laquelle l'utilisateur s'est connecté
Je veux comprendre à peu près systemd
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
Je veux sortir le début du mois prochain avec Python
Développement LINEbot, je souhaite vérifier le fonctionnement dans l'environnement local
Je veux créer un système pour éviter d'oublier de serrer la clé 1
J'ai essayé de calculer l'intégrale de probabilité (I à l'intégrale)
Je souhaite répondre automatiquement au formulaire Google à 17 heures tous les matins
Je veux faire de la deuxième ligne le nom de la colonne dans pandas