ローカル開発用サーバーの使用

Google Cloud CLI には、ローカル開発用サーバー(dev_appserver.py)が含まれています。ローカル開発用サーバーを使用すると、本番環境での App Engine アプリケーションの実行をシミュレートしながら、App Engine のレガシー バンドル サービスにアクセスできます。シミュレートされた環境では、システム関数やランタイム言語モジュールによるインポート機能の制限など、サンドボックスにある程度制限がありますが、リクエストのタイムアウトや割り当てには制限がありません。

App Engine 用 SDK のライブラリによって提供される Datastore、Memcache、タスクキューなどのサービスを、ローカル開発用サーバーでローカルに実行してシミュレートすることもできます。アプリケーションが開発用サーバーで動作している場合でも、Google API HTTP エンドポイントを使用して、本番環境のインフラストラクチャに対するリモート API 呼び出しを行えます。

ローカル開発用サーバーの設定

ローカル開発用サーバーツールを実行するには、次の設定を行う必要があります。

  1. gcloud CLI に必要な Python バージョンと互換性がある Python 3 インタープリタがインストールされていることを確認します。
  2. Python 3 用の App Engine 拡張機能(app-engine-python)を含む Google Cloud CLI コンポーネントがインストールされていることを確認します。

    gcloud components list
    

    app-engine-python コンポーネントがインストールされていない場合は、次のコマンドを実行します。

    gcloud components install app-engine-python
    
  3. 次のコマンドを実行して、Google Cloud SDK のインストール パスを確認します。

    gcloud info
    

    このコマンドは、Google Cloud SDK がインストールされているルート ディレクトリを返します。次に例を示します。

    Installation Root: [/Users/myname/google-cloud-sdk]

  4. Google Cloud CLI をインストールした /bin/ フォルダの下にある dev_appserver.py ツールを見つけます。次に例を示します。

    CLOUD_SDK_ROOT/bin/dev_appserver.py
    
  5. 後で使用できるように、dev_appserver.py へのパスをメモします。

ローカル開発用サーバーの実行

ローカル開発用サーバーを設定し、アプリの app.yaml 構成ファイルを作成した後、dev_appserver.py コマンドを使用すると、アプリをローカルで実行できます。

ローカル開発用サーバーを起動するには:

  • ローカル開発用サーバーが起動し、リクエストを待機します。ウェブブラウザで http://localhost:8080/ にアクセスすると、アプリの動作を確認できます。

    --port オプションでカスタムポートを指定した場合は、そのポートでブラウザを開くようにしてください。

  • ローカル サーバーをコマンドラインから停止するには、次のキーを押します。

    • macOS または Linux: Control+C
    • Windows: Ctrl+Break

    アプリケーション ID の指定

    アプリケーションのランタイム環境の検出

    メールサービスの使用

    ローカル開発用サーバーは、SMTP サーバーまたはローカルにインストールされた Sendmail を使用して、呼び出しのメールを App Engine のメールサービスに送信できます。

    SMTP の使用

    SMTP サーバーを使用してメールサポートを有効にするには、次のように dev_appserver.py を呼び出します。

    python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
        --smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
    

    ここで、--smtp_host--smtp_port--smtp_user--smtp_password の各オプションに実際の値を設定します。

    Sendmail の使用

    Sendmail でメールサポートを有効にするには、次のように dev_appserver.py を呼び出します。

    python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
    

    ローカル サーバーは、sendmail コマンドを使用して、インストールのデフォルト構成でメールを送信します。

    URL 取得サービスの使用

    アプリケーションが URL 取得 API を使用して HTTP リクエストを送信する場合、ローカル開発用サーバーはデベロッパーのコンピュータからリクエストを直接送信します。プロキシ サーバーを使用してウェブサイトにアクセスしている場合、ローカル サーバーでの URL 取得の動作は本番環境の App Engine と異なることがあります。

    ユーザー サービスを使用する

    App Engine には、アプリケーションの認証と認可を簡素化するためのユーザー サービスが用意されています。ローカル開発用サーバーは、独自のログインページとログアウト ページで Google アカウントの動作をシミュレートします。

    コマンドライン引数

    ローカル開発用サーバーのコマンド オプションについては、ローカル開発用サーバーのオプションをご覧ください。