公式の、App Engine スタンダード環境での Python 3 のクイックスタートを見ながらやっていきます

※プロジェクト作成は、前回の記事で完了しているものとしてこちらでは割愛します

前提作業

1
2
3
4
5
// コンポーネントのインストール
$ gcloud components install app-engine-python

// App Engineの初期化
$ gcloud app create --project=[YOUR_PROJECT_ID]

サンプルをダウンロード

書いてある通りにホイホイ実行します

1
2
$ git clone https://github.com/GoogleCloudPlatform/python-docs-samples
$ cd python-docs-samples/appengine/standard_python3/hello_world

こんな感じになってました

1
2
3
4
5
6
7
8
9
10
11
12
$ ls -la
合計 28
drwxr-xr-x 2 username username 4096 8月 8 00:07 .
drwxr-xr-x 13 username username 4096 8月 8 00:07 ..
-rw-r--r-- 1 username username 18 8月 8 00:07 app.yaml
-rw-r--r-- 1 username username 1178 8月 8 00:07 main.py
-rw-r--r-- 1 username username 801 8月 8 00:07 main_test.py
-rw-r--r-- 1 username username 14 8月 8 00:07 requirements-test.txt
-rw-r--r-- 1 username username 13 8月 8 00:07 requirements.txt

$ cat app.yaml
runtime: python38

App Engineにデプロイ

1
$ gcloud app deploy

デプロイ時に、 target url: [https://project-name.dt.r.appspot.com] みたいなのが表示されたと思うので、デプロイ完了後にそこにアクセスすると、 Hello World!と表示されると思います

app.yamlを書き換えてみる

いまのところ、 app.yamlには最低限しか書かれていないので、とりあえずエントリポイントの書き換えをやってみました

公式: app.yaml 構成ファイル | Python 3 の App Engine スタンダード環境 | Google Cloud

1
2
3
4
5
// 適当なファイルを作る
$ cp main.py hoge.py

// 「Hello World」の代わりに「AAAA」と表示されるようにする
$ sed -i -e 's/Hello World/AAAA/' hoge.py

公式の、Python 3 ランタイム環境 | Python 3 の App Engine スタンダード環境 | Google Cloudを参考に

1
2
3
4
5
// app.yaml: entrypointを追記する
$ echo 'entrypoint: gunicorn -b :$PORT hoge:app' >> app.yaml

// requirements.txt: gunicornを追加する
$ echo 'gunicorn' >> requirements.txt

デプロイ完了後にブラウザを更新すると、 AAAAと表示されると思います