リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
ルーティング ルールをオーバーライドするには、dispatch.yaml
を使用します。dispatch.yaml
を使用すると、URL 内のパスまたはホスト名に基づいて、特定のサービス(以前はモジュールと呼ばれていました)に受信リクエストを送信できます。
詳細については、リクエストのルーティング方法をご覧ください。
アプリに含めることができるのは 1 つの dispatch.yaml
ファイルのみです。そのファイル内のルーティング ルールは、すべてのアプリのサービスとバージョンに適用されます。ルーティング ルールは、cron ファイルで使用される URL にも適用されます。
ディスパッチ ファイルのデプロイ
ディスパッチ ファイルをデプロイする前に、そのファイルに定義されているすべてのサービスがすでに App Engine にデプロイされていることを確認する必要があります。dispatch.yaml
ファイルをデプロイするには、dispatch.yaml
を含むディレクトリから gcloud app deploy
コマンドを実行します。
gcloud app deploy dispatch.yaml
デプロイ コマンドの詳細については、アプリのデプロイをご覧ください。
構文
dispatch.yaml
ファイル内のルート要素は dispatch:
であり、以下に示すサブ要素で指定されるルーティング定義の一覧を含みます。
ディスパッチ ファイルで定義するルールは、HTTP URL パターンを使用し、サブドメインの区切りに「.
」を使用する必要があります。HTTPS の「-dot-
」表記で定義した URL はサポートされません。
ディスパッチ ルールは順序に依存し、URL に一致する最初のルールのみが適用されます。
要素 | 説明 |
---|---|
service |
|
url |
ヒント:
|
例
以下のディスパッチ ファイルのサンプルでは、https://simple-sample.uc.r.appspot.com
宛てのリクエストや、https://simple-sample.uc.r.appspot.com/favicon.ico
などのリクエストを default
サービスにルーティングしています。すべての静的コンテンツが、default
サービスから配信されます。https://simple-sample.uc.r.appspot.com/mobile/
などのモバイル リクエストはモバイル フロントエンドにルーティングされ、https://simple-sample.uc.r.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.uc.r.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.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.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
受信ドメイン リクエストをサービスにリダイレクトするルールを作成できます。次のルールは、customer1.myapp.com からの受信リクエストをデフォルト サービスに、サブドメインからの受信リクエストを静的バックエンド サービスにそれぞれルーティングします。
例:
# Matches the domain name 'customer1.myapp.com' and directs all the request to default service
- url: "customer1.myapp.com/*"
service: default
# Matches all the subdomains of 'customer1.myapp.com' and directs all the request to static-backend service
- url: "*.customer1.myapp.com/*"
service: static-backend
上限
ディスパッチ ファイルには最大 20 個のルーティング ルールを含めることができます。URL 文字列を指定するときに、100 文字を超えるホスト名やパスは使用できません。
すべてのディスパッチ ルールの削除
すべてのディスパッチ ルールを削除するには:
dispatch.yaml
ファイルの内容を次のように編集します。dispatch: []
dispatch.yaml
ファイルを App Engine にデプロイします。