この章では、Flaskを用いたプログラムをデプロイしていきます。
Google Cloud SDKの準備が終わっていることが前提になります。終わっていない人は、part1を参考に作業を進めてください。
実装する
以下のコマンドで新規のファイルを作成しましょう。
$ mkdir [新規ファイル名]
$ cd [新規ファイル名]
そして以下のファイルを作成していきます。*マークがついているファイルを作成していきます。お好きなエディタでどうぞ。
[新規ファイル名]
├─templates
│ └─main.html*
├─main.py*
├─app.yaml*
└─requirements.txt*
main.html
クライアント側を作成していきます。今回は「Hello Flask!!」と表示するだけです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello Flask!</title>
</head>
<body>
<h1>{{ hello }}</h1>
</body>
</html>
main.py
Flaskを利用してmain.htmlファイルに「Hello Flask!!」を渡します。
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def hello_flask():
hello = "Hello Flask!!"
return render_template('main.html', hello = hello)
if __name__ == '__main__':
app.run()
Flaskの説明に関しては今回は記述しません。知りたい方は以下の記事を参考にしてください。
app.yaml
環境やサービス名などを記述するファイルになっています。このファイルがデプロイ記述子となるので必ず作成しましょう。
runtime: python37
env: standard
service: flask-test
entrypoint: gunicorn -b :$PORT main:app
App Engineの設定はこのファイルで行うことが多いみたいです。
app.yaml リファレンス | Python の App Engine スタンダード環境 | Google Cloud
requirements.txt
Flaskとgunicornがインストールされるように設定しましょう。
flask
gunicorn
デプロイする
これでデプロイの準備が完了しました。実際にデプロイしていきます。
$ gcloud app deploy
Services to deploy:
・
(省略)
・
Do you want to continue (Y/n)? y
・
(省略)
・
Deployed service [flask-test] to [https://flask-test-dot-[プロジェクト名].appspot.com]
You can stream logs from the command line by running:
$ gcloud app logs tail -s flask-test
To view your application in the web browser run:
$ gcloud app browse -s flask-test
こんな感じで表示されれば成功です。
実際に「 https://flask-test-dot-[プロジェクト名].appspot.com 」にアクセスしてみましょう。
これでデプロイ完了です。
まとめ
今回は、GAEを利用してFlask環境のプログラムをデプロイしました。インフラの知識はほとんどありませんが、比較的簡単にデプロイできたと思います。無料枠もあるのでこれからもどんどん利用していこうと思います。閲覧ありがとうございました。