GCPで準備
GCPコンソールの左上「≡」からApp Engineを選ぶ。
(右側にあるHello Worldの「チュートリアルを始める」をやってもいい。時間10分。
ここではチュートリアルと同じものができるように進めてみる)
専用のプロジェクトを作っておく。app-eとか。
後々、アプリ削除するときにプロジェクトごと削除してお終いにできるので、アプリ専用プロジェクト作成をおすすめします。
「開始」を選択
Language: python
Environment: 標準
「次へ」
あとは指示通りに作業。
Googleの「Cloud SDKをダウンロード」しインストール。
コマンドプロンプト(git bashでもいい)の自分の該当ディレクトリ(~/app-e など)で
初めて実行するならば
$ gcloud auth login
でGoogleアカウントを選択しておく。
$ gloud init
デフォルトだと
region : us-central1
zone: us-central1-b
が選ばれるようだ。
[1] Re-initialize this configuration [default] with new settings
[2] Create a new configuration
が選べる。
[1]を選択
その後、CUIで数字を選択していく
・アカウント選択
・プロジェクト(さっき作成したapp-eなど)を選択
ファイルを用意
ローカルPCの該当ディレクトリで作業。
下記3ファイルを作って置いておく。
(チュートリアルではmain_test.pyとrequirements-test.txtがあるが割愛)
app.yaml
runtime: python38
requirements.txt
Flask==1.1.2
main.py … このファイル名固定のようだ
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
"""Return a friendly HTTP greeting."""
return 'AppE: こんにちは、Flask!'
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
ローカルPCで環境準備
python 3.8, flask 1.1.2 が必要。
チュートリアルではvirtualenv だがここではcondaを使っておく
condaで専用環境を作っておく。必要なくなたら環境破棄のテンポラリ予定。
$ conda create -n app-hello python=3.8
$ conda activate app-hello
$ pip install -r requirements.txt
ローカルPCで実行・確認
$ python main.py
実行後
Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
が表示されたら
ローカルPCのブラウザで http://127.0.0.1:8080/ にアクセス。
Hello World!
と表示されればOK。
python main.pyの停止は Ctrl-C。
$ gcloud app create
$ gcloud app deploy app.yaml –project 該当プロジェクト名
数分後に終了してコマンドプロンプトに返ってくる
Deployed service [default] to
に表示されているアプリサイトのurlにアクセスすることで Hello Worldが表示されればOK。
削除するときはこのアプリ専用のプロジェクトごとGCPコンソールで削除すればいい。
最初からhttpsになっているし、なれれば10分ほどで Hello World アプリをデプロイできるし、App Engineは非常に魅力的。
App Engineの料金
コードと静的ストレージ用ストレージは1GBまで無料。それ以上は$0.026/GB/月
「F」インスタンスだと1日あたり28インスタンス時間まで無料。
インスタンス時間なので、アプリが1つなら28時間すくないので1日24時間無料、
アプリが2つならば1日14時間ずつ無料、アプリが4つならば1日7時間ずつ無料、
という感じ。
アプリ1~2個ならば問題なさそうだが、アプリが増えてくるならば、GCPのf1micro+30GB無料枠でVMインスタンス作った方が安全そう。
しばらくブログに 「GCP:Flaskテスト」と「AppE:Flaskテスト」をおいて様子を見てみる。
コメント