このページでは、Python App Engine アプリケーションをデプロイする方法、Stackdriver Error Reporting で任意のエラーの詳細を表示する方法を説明します。
Google Cloud Platform Console の 3 分間のインタラクティブなチュートリアルをご覧ください
(リンク先のページで右側にある [次へ] ボタンをクリックしてください)。
始める前に
-
Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
GCP Console で、[リソースの管理] ページに移動して、新しいプロジェクトを選択または作成します。
-
プロジェクトに対して課金が有効になっていることを確認します。
- プロジェクトの Cloud Shell を開きます。「接続中...」というメッセージがシェルの起動中にプロジェクトのダッシュボードの下部に表示されます。
App Engine アプリのデプロイ
アプリケーションのソースコードは、GitHub プロジェクト appengine-helloworld-python にあります。
ワークステーションにプロジェクトのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/appengine-helloworld-python.gitGit は次のメッセージを返します。
git clone https://github.com/GoogleCloudPlatform/appengine-helloworld-python.git Cloning into 'appengine-helloworld-python'... remote: Counting objects: 49, done. remote: Total 49 (delta 0), reused 0 (delta 0), pack-reused 49 Unpacking objects: 100% (49/49), done. Checking connectivity... done.
プロジェクト ディレクトリに移動します。
cd appengine-helloworld-pythonテキスト エディタで
app.yamlを開き、applicationの値を、GCP Console に登録したプロジェクト名に変更します。ローカルの開発用サーバーを使用して、アプリをテストします。
dev_appserver.py .http://localhost:8080 に移動します。すべてが適切に構成されると、ブラウザは「Hello world!」と表示します。Ctrl+C キーを押して、ローカルの開発用サーバーを停止させます。
アプリケーションを App Engine にアップロードします。
[PROJECT_ID]は、実際のプロジェクト ID に置き換えます。appcfg.py -A [PROJECT_ID] -V v1 update .http://[PROJECT_ID].appspot.comに移動します([PROJECT_ID]は実際のプロジェクト ID に置き換えます)。ブラウザは「Hello world!」と表示します。
エラーの導入
実行中のエラーレポートを見るには、アプリケーションでエラーをトリガする必要があります。エラーレポートはエラーレベルにあるエラーしか表示しないので、この例では、存在しないモジュールをインポートします。
テキスト エディタで
main.pyを開きます。コードの最初の行(コメントの後)を次のように編集します。
import webapp22ファイルを保存して閉じます。
変更されたファイルを App Engine にアップロードします。
appcfg.py -A [PROJECT_ID] -V v1 update .http://[PROJECT_ID].appspot.comに移動します([PROJECT_ID]は実際のプロジェクト ID に置き換えます)。ブラウザがImportErrorを表示します。Traceback (most recent call last): File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler handler, path, err = LoadObject(self._handler) File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject obj = __import__(path[0]) File "/base/data/home/apps/s~er-qs-5/v1.391726448590406952/main.py", line 17, inimport webapp22 ImportError: No module named webapp22
Error Reporting でのエラー表示
Stackdriver Error Reporting がエラーをピックアップしました。
GCP Console で Error Reporting にアクセスします。概要ページが開き、1 件のエラーを表示します。

[自動再読み込み] をクリックします。エラーリストは 5 秒ごとに自動的に再読み込みされます。
アプリケーション(
http://[PROJECT_ID].appspot.com)を、ブラウザに再読み込みします。Error Reporting がエラーを検出します。スタック トレースは 1 番目のエラーに似ているので、Error Reporting はそれを 1 番目のエラーとひとまとめにして、[発生回数] と時間のグラフを更新します。リスト中のエラーをクリックします。エラー詳細ページが表示されます。

詳細ページには、これらの関連エラーに関する入手可能なすべての情報が含まれます。入手できれば、ソースコードへのリンクも含まれます。
クリーンアップ
このチュートリアルで使用するリソースで {[gcp_name_short}} アカウントに課金されないようにする手順は次のとおりです。
GCP Console のプロジェクト ページに移動します。
プロジェクトの横に表示されているごみ箱アイコン(
)をクリックします。プロジェクト名を入力して、シャットダウンを確認します。


