Pycharmで簡易的なGoogle App Engine Python3.7対応

Google App Engine ( GAE ) の Standard Environment において Python 3.7 が正式に対応されました。Pycharm では GAE に対応した編集も行うことができますが、自分自身での設定が必要です。また、Pycharm Professional では以前より GAE に対応した機能がありましたが、これも Python 2.7 にしか対応していません。 そこで今回は、簡易的にPython 3.7 に対応した設定を紹介したいと思います。 (ローカル環境でCloud Datastoreなどの利用が必要な場合は適しません。) 本記事では、
  •  Pycharm
  •  Python 3.7
  •  Cloud SDK
がインストールされているものとし説明します。また以下の説明では Pycharm Professional を用いていますが、Pychram Community でも問題ないものと思われます。適宜置き換えてください。

プロジェクトの準備

プロジェクトを準備するとき、これまで Pycharm Professional を利用していた方であれば、テンプレートにGoogle App Engineを選択していたと思います。しかし、これはPython 2.7でなければエラーが表示されてしまうため、ここではPure Pythonを選択します。エンジンにはPython3.7を選択しましょう。 今回ビルド・実行するプロジェクトは、Google App Engineのチュートリアルで用いられているHello Worldを使います。 https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard_python37/hello_world main.pyは次のようになります。
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8080, debug=True)
またapp.yamlは次の通りです。
runtime: python37
requirements.txtもありますので、事前にインストールを済ませておきましょう。
pip install requirements.txt

ローカル環境での実行

ローカルで実行するには、通常次のコマンドが利用されます。
python main.py
毎回入力するのは面倒ですので、これを「Edit Configurations …」より「Run / Debug」に登録します。 登録方法は次の通りです。 設定は「Python」を選択します。
  • Script path … main.py
これで実行すると、アクセス可能なアドレスが表示されますので、そちらを表示し動作を確認してください。

Google App Engineへのデプロイ

従来のPycharmであれば、appengineを利用しデプロイしていましたが、ここではgcloudを利用します。コマンドは次の通りです。
gcloud deploy --project <project_name> --version 1 --no-promote --quiet
これも「Run / Debug」に登録しましょう。 登録方法は次の通りです。 設定は「Bash」を選択します。
  • Script … app
  • Interpreter path … gcloudのパス (Windowsの例: C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gcloud.cmd)
  • Program arguments … deploy –project –version 1 –no-promote –quiet
これで実行すると、2~3分でデプロイが完了します。詳細なログが表示されませんが、気長に待ってください。

まとめ

以上がPycharmでGoogle App Engineへのデプロイの簡易的な方法でした。冒頭でも述べましたように、この方法だとローカル環境でCloud Datastoreなど、Goofleが用意している固有のサービスのデバッグは行うことができません。(Cloud SQLであれば、ローカルにDBを用意することで代用可能です。)そのあたりに注意してご利用ください。
» エンジニア登録はこちら