リージョン 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 にも適用されます。
ディスパッチ ファイルのデプロイ
dispatch.yaml
ファイルはソースコードのどこに配置してもかまいません。
現在使用中のバージョンを変更せずにディスパッチ構成ファイルをデプロイするには、お使いの環境に応じて、ディスパッチ ファイルを含むディレクトリで次のいずれかのコマンドを使用します。
gcloud
gcloud app deploy dispatch.yaml
Maven
mvn appengine:deployDispatch dispatch.yaml
Gradle
gradle appengineDeployDispatch dispatch.yaml
IDE
IntelliJ または Eclipse を使用する場合は、デプロイメント フォームを使用して、デプロイ対象の個々の構成ファイルを選択します。
構文
dispatch.yaml
ファイル内のルート要素は dispatch:
であり、以下に示すサブ要素で指定されるルーティング定義の一覧を含みます。
ディスパッチ ファイルで定義するルールは、HTTP URL パターンを使用し、サブドメインの区切りに「.
」を使用する必要があります。HTTPS の「-dot-
」表記で定義した URL はサポートされません。
ディスパッチ ルールは順序に依存し、URL に一致する最初のルールのみが適用されます。
要素 | 説明 |
---|---|
service |
|
url |
ヒント: ホスト名と URL パスで構成可能な URL パターン。Glob 文字を使用してパターンを照合できます。Glob 文字を指定できるのは、パターンの先頭と末尾のみです。引用符で囲んだ 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
制限
ディスパッチ ファイルには最大 20 個のルーティング ルールを含めることができます。URL 文字列を指定するときに、100 文字を超えるホスト名やパスは使用できません。
すべてのディスパッチ ルールの削除
すべてのディスパッチ ルールを削除するには:
dispatch.yaml
ファイルの内容を次のように編集します。dispatch: []
dispatch.yaml
ファイルを App Engine にデプロイします。