Pythonは長年2系と3系の2つのバージョンが混在していた状態でしたが、GAEのStandard environmentではPython 2系しか利用できず、Python 3系を利用しようと思うとFlexible environmentを利用するしかありませんでした。Python 2系のサポートが2020年に終了することを受け各社Python 3系への移行が進んでおり、その流れはGoogle App Engine (以下GAE) でも同様です。現在(2018/8/15)はまだベータ版ですが今後はGAEにおいてもPython 3系が主流になるので、先取りして今回はPython 3.7について記します。
前回、Python 2.7 Flaskを利用したGoogle App Engineの記事より実際に試した方でしたら、app.yamlのruntaimeを「python37」に変更するだけと思いがちですが、実際にはそれだけではありません。必要な手続きを確認しましょう。
Google App EngineにおいてPython 3系はベータ版であるため、今後変更される可能性があります。
Google App Engineを利用するには、Google Cloud Platform画面上でその前準備が必要になります。以前に紹介した記事を参考に準備を整えてください。
Google App Engine を利用するための前準備
Python 3.7 Flask を利用したGoogle App Engine のチュートリアル
Python 2.7のときはFlaskを利用するために、app.yamlのlibrariesの項目に「flask」と記していましたが、Python 3.7ではこの方法を取ることができません。またthreadsafeについても、まだサポートされていません。作業フォルダsrcの配下にapp.yamlを作成し、以下のように記述します。
runtime: python37
api_version: 1
handlers:
- url: /.*
script: main.app
ここには、
- ・Python 3.7を利用する
- ・アクセスがあったとき、main.pyの処理を実行する
などが記されています。
それではFlaskを利用することはどこに記述すればよいのでしょうか。それはPythonではお馴染みのrequirements.txtです。srcフォルダにrequrements.txtファイルを作成し、次のように記述しましょう。
Flask==1.0.2
そしてPythonのソースコードは、srcフォルダにmain.pyファイルを作成し作成し、次のように記述します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
それではこれらをデプロイしましょう。シェル上で、次のコマンドを実行します。
$ cd src
$ gcloud app deploy app.yaml --project プロジェクトID
作業を行うため src フォルダに移動した後、gcloud app deploy コマンドを利用しデプロイを行います。<プロジェクトID>の箇所は、ご自身のプロジェクトIDを入力してください。確認メッセージが表示されたら「Y」と入力します。2分ほど待つと処理が終わります。
Deployed service [default] to [https://プロジェクトID.appspot.com]
と表示されていることを確認しましょう。
最後に
- https://プロジェクトID.appspot.com
にアクセスすると「Hello World!」の表示が見れるでしょう。
まとめ
Python 2.7のときとは設定が若干異なりますが、Python 3.7でも動作させることができました。threadsafeが利用できない問題など残っていますが、正式版では利用できるものと思われます。いち早くPython 3.7を採用してみてはいかがでしょうか。
No commented yet.