Flask を使用して、静的 HTML ファイルを提供するウェブサービスを作成し、ローカルでテストします。次に、App Engine にウェブサービスをデプロイするために必要な構成ファイルを作成します。
このステップでは、プレースホルダ データを表示できるバージョンのウェブサービスを作成し、ローカルでテストします。Datastore と Firebase Authentication を追加する前に、基本的なウェブサービスが動作していることを確認することが目標になります。
始める前に
Google Cloud プロジェクトをまだ作成していない場合は、Google Cloud プロジェクトを作成します。
Python 3 開発用のローカル環境をまだ設定していなければ、次の手順で設定します。
ウェブサービスの開発と Google Cloud CLI の実行用に、Python 3 をダウンロードしてインストールします。
Google Cloud ユーザー認証情報を使用して Google Cloud CLI への認証を行い、Datastore でローカルテストを実行できるようにします。
gcloud auth application-default login
ウェブサービス ファイルの構造化
ウェブサービスを作成するプロジェクト ディレクトリは、次のようなファイル構造になります。
building-an-app/
app.yaml
main.py
requirements.txt
static/
script.js
style.css
templates/
index.html
以下のセクションでは、プロジェクト ディレクトリ内にファイルを設定する方法の例を示します。
ウェブサービスを作成する
ウェブサービスの初期の工程では、Flask を使用して Jinja ベースの HTML テンプレートを提供します。
ウェブサービスを設定するには:
templates/index.html
ファイルを作成します。static/script.js
およびstatic/style.css
ファイルを使用して動作とスタイルを追加します。main.py
ファイルで Flask を使用して、プレースホルダ データで HTML テンプレートをレンダリングします。requirements.txt
ファイルで、ウェブサービスに必要なすべての依存関係を構成します。
ウェブサービスをテストする
ウェブサービスを仮想環境でローカルに実行してテストします。
Mac OS / Linux
- 分離された Python 環境を作成します。
python3 -m venv env
source env/bin/activate
- 現在のディレクトリにサンプルコードが含まれていない場合は、
hello_world
サンプルコードが含まれるディレクトリに移動します。それから依存関係をインストールします。cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- アプリケーションを実行します。
python main.py
- ウェブブラウザに次のアドレスを入力します。
http://localhost:8080
Windows
PowerShell を使用して Python パッケージを実行します。
- インストールされた PowerShell を探します。
- PowerShell へのショートカットを右クリックし、管理者として PowerShell を起動します。
- 分離された Python 環境を作成します。
python -m venv env
.\env\Scripts\activate
- プロジェクト ディレクトリに移動し、依存関係をインストールします。サンプルコードが含まれるディレクトリにいない場合は、
hello_world
サンプルコードが含まれるディレクトリに移動します。それから依存関係をインストールします。cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- アプリケーションを実行します。
python main.py
- ウェブブラウザに次のアドレスを入力します。
http://localhost:8080
App Engine 用のウェブサービスを構成する
ウェブサービスを App Engine にデプロイするには、app.yaml
ファイルが必要です。この構成ファイルでは、App Engine 用のウェブサービスの設定を定義します。
ウェブサービスを構成して App Engine にデプロイするには、次のようにプロジェクトのルート ディレクトリ(例: building-an-app
)で app.yaml
ファイルを作成します。
このシンプルなウェブサービスでは、app.yaml
ファイルで定義する必要があるのはランタイム設定と静的ファイルのハンドラだけです。
さらに複雑なウェブサービスの場合は、スケーリング、追加のハンドラ、環境変数やサービス名などのアプリケーション要素などの追加設定を app.yaml
で構成します。詳細とサポートされている要素すべての一覧については、app.yaml
リファレンスをご覧ください。
次のステップ
ウェブサービスの構成、作成、テストが完了したので、次にこのバージョンのウェブサービスを App Engine にデプロイします。