素人がherokuを使用するまで
pythonを定期実行したくて、調べるとherokuというのが出てくる。
素人にはハードル高かったので、忘備録。
gitをインストール
herokuを使うにはgitをインストールする必要がありそう。
gitの使い方は以下を参考にさせていただきました。
非常にわかりやすかった。
ただ、configを使ったssh認証はうまくいかなかったので断念。
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説 - エンジニアHub|若手Webエンジニアのキャリアを考える!
herokuを登録・CLIインストール
herokuを使うには、アカウント登録とherokuをコマンドで実行するためのCLIのインストールが必要。
このあたりは参考記事がたくさんあるので、よきものを参考。
使用するpythonファイル等を準備
今回は以下のフォルダを準備
test_heroku ┣ slack_notice.py ┣ requirements.txt ┗ runtime.txt
requirements.txt には必要なパッケージを書く。
ローカルと同じ環境で動かすのであれば、pip freeze > requirements.txt で出力すればOK。
runtime.txt には実行するpythonのバージョンを書く。
今回はpython-3.7.3を使用。使用できるバージョンは公式を参照。
#runtime.txt python-3.7.3
herokuへアップロード
準備ができたら、herokuにアップロードしていく。
$ heroku login $ heroku create
heroku login を実行すると、ブラウザに移行してログインする
heroku createでherokuが自動でつけた名前のアプリがheroku上に作成されるのでブラウザで確認する
上記の場合は3つのアプリが作成されている。
作成されたアプリを選択、「deploy」を見るとアップロードする手順が書いてある。
基本的には手順に従えはOK。
所々、上記のサイトのgit手順に従う。
$ cd test_heroku $ git init $ heroku git:remote -a xxxxxxxxxxx $ git add . $ git commit -a $ git push heroku master
git push heroku master を実行すると、パッケージのインストールなどが開始される
c:\Users\xxxx\git\test_github>git push heroku master Enumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 8 threads Compressing objects: 100% (9/9), done. Writing objects: 100% (12/12), 3.23 KiB | 300.00 KiB/s, done. Total 12 (delta 1), reused 3 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Python app detected remote: -----> Installing python-3.7.3 remote: -----> Installing pip remote: -----> Installing SQLite3 remote: -----> Installing requirements with pip remote: Collecting altgraph==0.16.1 (from -r /tmp/build_87a75a556e8eb4dd0ab66965df5e0b56/requirements.txt (line 1)) remote: Downloading https://files.pythonhosted.org/packages/0a/cc/646187eac4b797069e2e6b736f14cdef85dbe405c9bfc7803ef36e4f62ef/altgraph-0.16.1-py2.py3-none-any.whl ・ ・ ・ remote: Verifying deploy... done. To https://git.heroku.com/xxxxxxxxxxx * [new branch] master -> master
これでherokuへのアップロードが完了。
pythonを実行
あとは、下記コマンドでpythonが実行できる
$ heroku run slack_notice.py
ちなみに、slack_notice.pyは中身は下記である。
import requests import json slack_post_url = "slackアクセストークン" name = "python_taro" text = "testyade" requests.post( slack_post_url, data=json.dumps( {"text": text, "username": name, "icon_emoji": ":python:"}))
見事にslackに通知が来た。
slackにはpythonの絵文字を登録している。
あとは定期実行すればよいが、定期実行にはアドオンの使用、アドオンの使用にはクレジットカードの登録が必要なので、とりあえず、今回はここまで。