dispatch.xml 構成ファイル

dispatch.xml を使用すると、ルーティング ルールをオーバーライドできます。dispatch.xml を使用すると、URL 内のパスまたはホスト名に基づいて、特定のサービス(以前はモジュールと呼ばれていました)に受信リクエストを送信できます。

詳細については、リクエストのルーティング方法をご覧ください。

ディスパッチ ファイルのデプロイ

dispatch.xml ファイルは、デフォルト サービスの WEB-INF ディレクトリに配置する必要があります。ディスパッチ ファイルを単独でデプロイするには、appcfg update_dispatch コマンドを使用し、デフォルト サービスのディレクトリを指定します。ファイルに記述されているサービスがすべてデプロイ済みであることを確認してから、次のコマンドを使用してください。

  • アプリケーションのメイン ディレクトリへのパスに置き換えて、現在のバージョンを変更せずにデプロイする。

    appcfg.sh update_dispatch <application directory>
    
  • あるいは、デフォルト サービスが含まれるアプリケーション ディレクトリに cd で移動し、次のコマンドを実行する。

    appcfg.sh update_dispatch .
    

また、オプションの auto_update_dispatch フラグを追加することで、1 つ以上のサービスをデプロイするのと同時にディスパッチ ファイルもデプロイできます。このフラグは、以下の 2 つの形式で使用できます。

appcfg.sh --auto_update_dispatch update <app-directory>|<files...>
appcfg.sh -D update <app-directory>|<files...>

デプロイ コマンドの詳細については、Java アプリをデプロイするをご覧ください。

構文

dispatch.xml ファイルのルート要素は <dispatch-entries> であり、各エントリは以下の要素を含む <dispatch> 要素です。

ディスパッチ ファイルで定義するルールは、HTTP URL パターンを使用し、サブドメインの区切りに「.」を使用する必要があります。HTTPS の「-dot-」表記で定義した URL はサポートされません。

ディスパッチ ルールは順序に依存しており、cron ファイルに定義した URL にも適用できます。

要素 説明
<module>

url パターンに一致するリクエストを処理するサービスの名前を指定します。

url

「url」要素には、URL パターンを定義します。これには、100 文字以下でホスト名と URL パスを含めることができます。「service」要素には、「url」要素の URL パターンと一致する受信リクエストを処理するサービス名を指定します。

ヒント: 「url」要素には、「*」ワイルドカード文字などの glob パターンを含めることができますが、これらのパターンはホスト名の前と URL パスの最後でのみ使用できます。

URL パターン。ホスト名と URL パスを含めることができます。Glob 文字を使用してパターンを照合できます。Glob 文字を指定できるのは、パターンの先頭と末尾のみです。

ディスパッチ ルールは、cron の構成タスクキューの構成で使用される URL にも適用されることに注意してください。

/_ah/ で始まる URL パスは、ディスパッチ ファイルによってルーティングされません。

以下は、リクエストを http://simple-sample.appspot.com にルーティングし、http://simple-sample.appspot.com/favicon.ico などのリクエストを default <module> にルーティングするディスパッチ ファイルのサンプルです。すべての静的コンテンツが、default <module> から配信されます。http://simple-sample.appspot.com/mobile/ などのモバイル リクエストはモバイル フロントエンドにルーティングされ、http://simple-sample.appspot.com/work/ などのワーカー リクエストは静的バックエンドにルーティングされます。

<?xml version="1.0" encoding="UTF-8"?>
<dispatch-entries>
  <dispatch>
      <!-- Default module serves the typical web resources and all static resources. -->
      <url>*/favicon.ico</url>
      <module>default</module>
  </dispatch>
  <dispatch>
      <!-- Default module serves simple hostname request. -->
      <url>simple-sample.appspot.com/</url>
      <module>default</module>
  </dispatch>
  <dispatch>
      <!-- Send all mobile traffic to the mobile frontend. -->
      <url>*/mobile/*</url>
      <module>mobile-frontend</module>
  </dispatch>
  <dispatch>
      <!-- Send all work to the one static backend. -->
      <url>*/work/*</url>
      <module>static-backend</module>
  </dispatch>
</dispatch-entries>

制限事項

ディスパッチ ファイルには最大 20 個のルーティング ルールを含めることができます。URL 文字列を指定するときに、100 文字を超えるホスト名やパスは使用できません。

すべてのディスパッチ ルールの削除

すべてのディスパッチ ルールを削除する手順は次のとおりです。

  1. dispatch.xml ファイルの内容を次のように編集します。

    <?xml version="1.0" encoding="UTF-8"?>
    <dispatch-entries/>
    
  2. dispatch.xml ファイルを App Engine にデプロイします。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java 8 の App Engine スタンダード環境