dispatch.yaml 設定檔

dispatch.yaml 可讓您覆寫轉送規則。 您可以根據網址中的路徑或主機名稱,使用 dispatch.yaml 將傳入要求寄送給特定服務 (之前稱為模組)。

詳情請參閱要求的轉送方式

部署分派檔案

dispatch.yaml 檔案應該要位於 Go 原始碼所在的目錄中。

如要部署 dispatch.yaml 檔案,請使用下列指令。請在部署分派檔案之前,確保您在該檔案中定義的所有服務都已部署至 App Engine。

gcloud

從包含 dispatch.yaml 的目錄執行 gcloud app deploy 指令:

gcloud app deploy dispatch.yaml

如要進一步瞭解部署指令,請參閱部署 Go 1.11 應用程式

語法

dispatch.yaml 檔案中的根元素為 dispatch:,此元素包含下列子元素指定的轉送定義清單。

您在分派檔案中定義的規則必須使用 HTTP 網址模式;這類模式包含分隔子網域的「.」標記法。系統不支援使用 HTTPS「-dot-」標記定義的網址。

分派規則取決於順序,這些規則也可以套用至您在 cron 檔案中定義的網址。

元素 說明
service

指定處理與 url 模式相符之要求的服務名稱。請注意,服務之前稱為模組。

url

您可以在 url 元素的引號內定義網址模式,其中包括長度不超過 100 個字元的主機名稱和網址路徑。在 service 元素中則可指定服務名稱,讓該服務處理符合 url 元素網址模式的任何傳入要求。

提示:您可以在 url 元素中加入 * 萬用字元等 glob 模式,但這些模式只可用於主機名稱前方和網址路徑結尾。

可包含主機名稱和網址路徑的網址模式。Glob 字元可用來比對模式。您只能在模式的開頭和結尾處指定 Glob 字元。

請注意,分派規則也適用於 Cron 設定中使用的網址。

分派檔案不會轉送開頭為 /_ah/ 的網址路徑。

範例

以下是分派檔案的範例,此檔案會將要求轉送至 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 個轉送規則。指定網址字串時,主機名稱或路徑都不能超過 100 個字元。

刪除所有分派規則

如何刪除所有分派規則:

  1. dispatch.yaml 檔案的內容編輯為:

    dispatch:
    
  2. dispatch.yaml 檔案部署到 App Engine。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Go 1.11 適用的 App Engine 標準環境文件