dispatch.yaml 構成ファイル

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

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

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

dispatch.yaml ファイルをデプロイするには、次のコマンドを使用します。ディスパッチ ファイルをデプロイする前に、そのファイルに定義されているすべてのサービスがすでに App Engine にデプロイされていることを確認する必要があります。

gcloud

dispatch.yaml が含まれているディレクトリから gcloud app deploy コマンドを実行します。

gcloud app deploy dispatch.yaml

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

構文

dispatch.yaml ファイル内のルート要素は dispatch: であり、次のサブ要素で指定されるルーティング定義の一覧を含みます。

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

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

要素 説明
service

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

dispatch:
  # Default service serves the typical web resources and all static resources.
  - url: "*/favicon.ico"
    service: default

  # Default service serves simple hostname request.
  - url: "simple-sample.appspot.com/"
    service: default

  # Send all mobile traffic to the mobile frontend.
  - url: "*/mobile/*"
    service: mobile-frontend

  # Send all work to the one static backend.
  - url: "*/work/*"
    service: static-backend

多数のリクエストに一致する可能性がある汎用的なルーティング ルールが適切である場合は、より広いスコープでルールを定義できます。次に例を示します。

# Send any path that begins with “simple-sample.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.appspot.com/mobile*"
  service: mobile-frontend

# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
  service: static-backend

次のように、より厳密な式を記述することもできます。

# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
  service: mobile-frontend

# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
  service: static-backend

制限

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

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

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

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

    dispatch:
    

  2. dispatch.yaml ファイルを App Engine にデプロイします。

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

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

Node.js 用 App Engine スタンダード環境に関するドキュメント