區域 ID
REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。
進一步瞭解區域 ID。
您可以在 app.yaml 設定檔中設定 App Engine 應用程式的設定。設定檔至少須指定 runtime 項目。
應用程式中的每個服務都有自己的 app.yaml 檔案,做為該服務的部署作業描述元。您必須先為 default 服務建立 app.yaml 檔案,才能為應用程式中的其他服務建立及部署 app.yaml 檔案。如要進一步瞭解如何在應用程式中建構多項服務,請參閱在 App Engine 中建構網路服務。
語法
app.yaml 的語法採用 YAML 格式。
YAML 格式支援註解功能,因此系統會忽略以井字 (#) 字元開頭的行:
# This is a comment.
網址和檔案路徑模式會使用 POSIX 擴充規則運算式語法,但不包括對照元素和對照類別。系統支援對分組相符項目 (例如 \1) 的反向參照,也支援下列擴充項目:\w \W \s \S \d \D。
範例
app.yaml 檔案的範例如下:
runtime: php85 handlers: # Serve a directory as a static resource. - url: /stylesheets static_dir: stylesheets # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ # Serve your app through a front controller at index.php or public/index.php. - url: .* script: auto
在這個範例中,App Engine 會提供副檔名為 gif、png 或 jpg 的檔案做為靜態資源。應用程式碼會在執行階段讀取設定檔。
下表提供 app.yaml 檔案中可用欄位的 YAML 範例:
執行階段和應用程式元素
| 元素 | 說明 |
|---|---|
app_engine_apis
|
選用。如要使用第二代執行階段的 App Engine 舊版套裝組合服務,請將這個欄位設為 |
build_env_variables
|
選用。如果使用的執行階段支援 buildpack,您可以在 詳情請參閱「 使用建構環境變數」。 |
default_expiration |
選用。會針對應用程式的所有靜態檔案處理常式,設定全域的預設快取有效期限。您也可以設定特定靜態檔案處理常式的快取效期。這個值是由數字和單位 (以空格分隔) 組成的字串,其中單位可為 d (天數)、h (小時數)、m (分鐘數) 和 s (秒數)。舉例來說, runtime: php85 default_expiration: "4d 5h" handlers: # ... 詳情請參閱「快取效期」。 |
entrypoint |
選用。應用程式啟動時,執行 如果您未指定 PHP 執行階段的 詳情請參閱「 啟動應用程式」。 |
env_variables
|
選用元素。您可以在
開頭為 範例: env_variables: MY_VAR: "my value" MY_VAR 和 my value 是您要定義的環境變數名稱和值,且各個環境變數項目位在 env_variables 元素下方並縮排兩個空格。未獲派值的環境變數預設為 "None"。
如果是 PHP,您可以使用 echo getenv('MY_VAR');echo $_SERVER['MY_VAR'];另請參閱無法覆寫的 執行階段環境變數清單。 |
error_handlers |
選用元素。用來設定自訂的錯誤頁面,讓系統能針對不同的錯誤類型傳回。 這個元素可包含下列元素:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.html |
handlers |
選用元素。會列出網址模式,以及這些網址模式的處理方式說明。App Engine 處理網址的方式有兩種,一種是執行應用程式的程式碼,另一種則是提供隨程式碼上傳的靜態檔案,例如圖片、CSS 或 JavaScript。 如果是 PHP,您也必須定義處理常式,才能將其他所有應用程式流量轉送至 例如: url: .* script: auto |
inbound_services |
選用元素。應用程式必須先啟用這些服務,才能讓這些服務接收內送要求。如要啟用應用程式的服務,請在
inbound_services: - warmup |
instance_class |
選用元素。該服務的執行個體類別。 視您服務的資源調度方式而定,可用的值如下:
|
runtime |
這是必要旗標,應用程式使用的執行階段環境名稱。舉例來說,如要指定執行階段環境,請使用: runtime: php85 |
service |
如要建立服務,這就是必要元素。如要使用 service: service-name |
service_account |
選用。 service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
vpc_access_connector |
選用。將您的應用程式設定為使用無伺服器的虛擬私有雲存取連接器,讓該應用程式能夠將要求傳送至虛擬私有雲網路中的內部資源。詳情請參閱「連線至虛擬私有雲網路」。
vpc_access_connector: name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME" egress_setting: all-traffic |
處理常式元素
handlers 元素提供網址模式清單,以及這些網址模式的處理方式說明。App Engine 處理網址的方式有兩種,一種是執行應用程式碼,另一種是提供隨程式碼一併上傳的靜態檔案 (例如圖片、CSS 或 JavaScript)。
系統會依照模式在 app.yaml 檔案中的出現順序,從上到下來評估模式。並以第一個符合網址的對應模式來處理要求。
下表列出 handlers 元素的子元素,這些子元素可控制靜態檔案、靜態目錄、Node.js 以外執行階段的指令碼和其他設定的行為。
| 元素 | 說明 |
|---|---|
expiration
|
選用。應該要讓該處理常式所提供的靜態檔案保留在網路 Proxy 和瀏覽器快取中的時間長度。這個值是由數字和單位 (以空格分隔) 組成的字串,其中單位可為 d (天數)、h (小時數)、m (分鐘數) 和 s (秒數)。舉例來說,"4d 5h" 會將快取到期時間設定為檔案首次收到要求後的 4 天又 5 小時。如果您省略這個值,系統會使用應用程序的 default_expiration。詳情請參閱「快取有效期限」。 |
http_headers |
選用。您可以針對靜態檔案或目錄處理常式的回應,設定 HTTP 標頭。 如果您需要在 如要進一步瞭解 App Engine 專屬標頭,請參閱 要求標頭和回應。 範例handlers: - url: /images static_dir: static/images http_headers: X-Foo-Header: foo X-Bar-Header: bar value vary: Accept-Encoding # ... CORS 支援這個功能的重要用途之一,就是支援跨來源資源共享 (CORS),例如存取另一個 App Engine 應用程式託管的檔案。
舉例來說,假設您有個遊戲應用程式 如要讓靜態檔案處理常式傳回所需的回應標頭值,請使用以下指令: handlers: - url: /images static_dir: static/images http_headers: Access-Control-Allow-Origin: https://mygame.uc.r.appspot.com # ...
提示:如要讓每個人都能存取您的資產,請使用萬用字元 |
mime_type |
選用。如有指定,這個處理常式將使用指定的 MIME 類型提供所有的檔案。如未指定,則檔案的 MIME 類型將衍生自檔案名稱的副檔名。如果您把同一個檔案以多個不同的副檔名上傳,則最後產生的副檔名可能會取決於上傳的順序。 如要進一步瞭解可用的 MIME 媒體類型,請造訪 IANA MIME 媒體類型網站。 |
redirect_http_response_code |
選用。
handlers: - url: /youraccount/.* script: auto secure: always redirect_http_response_code: 301
當使用者的要求遭到重新導向時,系統會將 HTTP 狀態碼設定為 |
script |
選用元素。指定送向特定處理常式的要求應以您的應用程式為目標。 handlers: - url: /images static_dir: static/images - url: /.* script: auto |
secure |
選用。所有網址處理常式都可以使用 secure 設定,包括靜態檔案處理常式。以下是 secure 可用的值:
handlers: - url: /youraccount/.* script: auto secure: always
如要使用 如要搭配 HTTPS 使用自訂網域,您必須先啟用並設定該網域的安全資料傳輸層 (SSL) 憑證。 Google 帳戶的登入和登出作業永遠都是使用安全連線來進行,與應用程式的網址設定方式無關。 |
static_dir
|
選用。從應用程式根目錄到靜態檔案所屬目錄的路徑。相符的
靜態目錄中的每個檔案,都是使用與該檔案的副檔名對應的 MIME 類型來提供,除非該類型遭到目錄的 handlers: # All URLs beginning with /stylesheets are treated as paths to # static files in the stylesheets/ directory. - url: /stylesheets static_dir: stylesheets # ... |
static_files
|
選用。靜態檔案模式處理常式會建立網址模式與隨應用程式上傳的靜態檔案路徑之間的關聯。網址模式規則運算式可定義規則運算式的分組,以用來建構檔案路徑。您可以在不用對應整個目錄的情況下使用這個方法,而不是使用 handlers: # All URLs ending in .gif .png or .jpg are treated as paths to # static files in the static/ directory. The URL pattern is a # regular expression, with a grouping that is inserted into the # path to the file. - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ # ... 靜態檔案不能與應用程式的程式碼檔案相同。 |
upload |
選用。與這個處理常式將會參照的所有檔案之路徑相符的規則運算式。這是必要的,因為處理常式無法判斷應用程式目錄中的哪些檔案會與指定的 |
url |
當網址模式與下列元素搭配使用時,該網址模式的行為會稍有不同:
|
資源調度元素
下表中的元素會設定應用程式的資源調度方式。如未指定資源調度類型,系統預設會設定為自動調整資源配置。
如要進一步瞭解 App Engine 應用程式的資源調度方式,請參閱資源調度類型。
| 元素 | 說明 |
|---|---|
automatic_scaling |
選用。僅適用於使用 F1 以上執行個體類別的應用程式。 指定這個元素可變更自動資源調度的預設設定,例如設定服務的執行個體數量、延遲時間和並行連線數的上、下限。 這個元素可包含下列元素:
automatic_scaling: target_cpu_utilization: 0.65 min_instances: 5 max_instances: 100 min_pending_latency: 30ms max_pending_latency: automatic max_concurrent_requests: 50 |
basic_scaling |
使用 B1 以上執行個體類別的應用程式必須指定這個元素或 這個元素可對 B1 以上的執行個體類別進行基本縮放, 可包含下列元素:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
使用 B1 以上執行個體類別的應用程式必須指定這個元素或 這個元素可手動調整 B1 以上執行個體類別的規模,並可包含下列元素:
manual_scaling: instances: 5 |