App Engine を使用したクイックスタート

このクイックスタートでは、Error Reporting の概要と次の方法について説明します。

  • Cloud Shell を使用して Python App Engine アプリケーションをデプロイする。
  • Error Reporting を使用してアプリケーションのエラーを表示する。
  • 通知を送信するように Error Reporting を構成する。

Google Cloud Console で 3 分間のインタラクティブなチュートリアルをお試しください。
(Error Reporting の [Introduction] 列で [開始] をクリックします)

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. プロジェクトの Cloud Shell を開きます。開始時に、[接続しています] というメッセージが表示されます。

    Cloud Shell を開く

スタートガイド

このセクションでは、アプリケーションをダウンロードして App Engine にデプロイします。

  1. GitHub プロジェクト python-docs-samples からアプリケーションをダウンロードして構成します。

    1. Cloud Shell にプロジェクトのクローンを作成します。

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git から次のようなメッセージが返されます。

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. 隔離された Python 環境を作成して有効にします。

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. 依存関係をインストールします。

      pip install -r requirements.txt
      
  2. アプリケーションのインストールと構成が成功したことを確認します。

    1. アプリケーションを実行します。

      python main.py
      
    2. ローカル ウェブページでアプリケーションを表示するには、Cloud Shell に表示されているリンクをクリックします。ウェブページに「Hello World!」と表示されます。

    3. 実行中のアプリケーションを停止するには、Cloud Shell で「Ctrl-C」と入力します。

  3. アプリケーションを App Engine にアップロードします。

    gcloud app deploy
    

    デプロイのリージョンを選択するよう求めるプロンプトが表示されたら、近くのリージョンを選択します。続行を確認するメッセージが表示されたら、「Y」と入力します。 しばらくすると、アップロードが完了します。

  4. Cloud Shell で次のコマンドを実行して、ブラウザでアプリケーションを表示します。

    gcloud app browse
    

    Cloud SDK でブラウザを検出できない場合は、上記のコマンドを実行すると、エラー メッセージとリンクが表示されます。表示されたリンクをクリックしてください。ブラウザに「Hello, World!」というメッセージが表示されます。

エラーの導入

次の手順では、Error Reporting で捕捉して表示するエラーを作成します。

  1. main.py を編集し、

    return 'Hello World!
    

    次のように変更します。

    return 'Hello World!' + 1000
    

    このように変更して実行すると、文字列と整数を連結することは不正な処理であるため、Python TypeError 例外が発生します。

  2. 変更したアプリケーションを App Engine にアップロードします。

    gcloud app deploy
    
  3. 実行中のアプリケーションが含まれるブラウザタブに戻り、ページを再読み込みします。上記の変更により、ページには「Hello, World!」とは表示されず、エラー メッセージが表示されます。

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    このメッセージが表示されない場合は、しばらく待ってからもう一度再読み込みしてください。新しいバージョンが有効になるまでに、しばらく時間がかかる場合があります。

Error Reporting でのエラー表示

ウェブページに表示されるエラー メッセージは、問題を解決するのに十分な詳細情報を提供しないため、あまり役には立ちません。Error Reporting を使用すると、エラーやその発生回数に関する詳細な情報を取得できます。

  1. Error Reporting に移動します。

    Error Reporting に移動

    Error Reporting ダッシュボードには、検出された各エラーの概要と各エラーの発生数が表示されます。 Error Reporting のデフォルトでは、エラーリストが 5 秒ごとに自動で再読み込みされますが、すぐに再読み込みを適用するには [自動再読み込み] をクリックします。

    このクイックスタートでは、ダッシュボードに "TypeError: can only concatenate str (not "int") to str" という説明付きの 1 つのエラーが表示されます。エラーが表示されない場合は、しばらく待ってからページを更新してください。

    テストエラーが表示されているユーザー インターフェース。

  2. ブラウザでアプリケーションを再読み込みして、同じエラーを再度生成します。

    新しいエラーのスタック トレースは最初のエラーに似ているので、Error Reporting はそれらをまとめて処理し、[発生回数] の数値と時間のグラフを更新します。

    まとめて処理されたテストエラーの発生回数が示されているユーザー インターフェース。

  3. エラーに関して提供されるすべての情報(ソースコードへのリンクなど)を含むエラー詳細ページを表示するには、エラー名をクリックします。

    テストエラーの詳細ページが表示されているユーザー インターフェース。

通知の構成

新しい種類のエラーが発生したときに通知を送信するように Error Reporting を構成できます。この場合、既存のエラーと同じエラーが新たに発生しても通知は送信されません。

  1. Error Reporting に移動します。

    Error Reporting に移動

  2. メール通知を有効にするには、その他 をクリックし、プルダウン リストから [プロジェクトで新しいエラーが検出されたときの通知をオンにする] を選択します。

  3. main.py で、

    return 'Hello World!` + 1000
    

    次のように変更します。

    return 'Hello World!'.punctuate()
    

    このように変更して実行すると、punctuate() 属性が存在しないため、Python AttributeError 例外が発生します。

  4. 変更されたファイルを App Engine にアップロードします。

    gcloud app deploy
    
  5. ブラウザでアプリケーションを再読み込みして、新しいエラーを生成します。

    • ブラウザに「Internal Server Error」というメッセージが表示されます。

    • Error Reporting ダッシュボードには、"AttributeError: 'str' object has no attribute 'punctuate' という説明付きのエラーが表示されます。

    • メールには新しい通知が含まれており、エラーに関する詳細情報が記載されています。次のような情報が含まれています。

      • プロジェクト ID
      • エラーの説明(この場合は "AttributeError: 'str' object has no attribute 'punctuate' が含まれる)
      • サービス
      • アプリケーションのバージョン

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ