Go 1.11 執行階段是一個軟體堆疊,負責安裝網路服務的程式碼及其依附元件,並執行服務。
在標準環境中,適用於 App Engine 的 Go 1.11 執行階段會在 app.yaml 檔案中宣告為:
runtime: go111
Go 版本
Go 1.11 執行階段環境採用穩定且最新的 Go 1.11 版。App Engine 會自動更新至最新的次要修訂版本,但不會自動更新主要版本。
舉例來說,您的應用程式可能先採用 Go 1.11.1 版進行部署,並在後續的部署作業中自動更新成 1.11.2 版,但是並不會自動更新至 Go 1.12。
依附元件
如需瞭解如何宣告及管理依附元件,請參閱指定相依元件。
環境變數
下列為執行階段設定的環境變數:
| 環境變數 | 說明 | 
|---|---|
| GAE_APPLICATION | App Engine 應用程式的 ID。這個 ID 的前置字串為「region code~」,例如在歐洲部署的應用程式為「e~」。 | 
| GAE_DEPLOYMENT_ID | 目前部署的 ID。 | 
| GAE_ENV | App Engine 環境。設為 standard。 | 
| GAE_INSTANCE | 服務目前正在執行的執行個體 ID。 | 
| GAE_MEMORY_MB | 應用程式程序可用的記憶體量,以 MB 為單位。 | 
| GAE_RUNTIME | app.yaml檔案中指定的執行階段。 | 
| GAE_SERVICE | 在 app.yaml檔案中指定的服務名稱。如果未指定服務名稱,則會設為default。 | 
| GAE_VERSION | 服務目前的版本標籤。 | 
| GOOGLE_CLOUD_PROJECT | 與應用程式相關聯的 Google Cloud 專案 ID。 | 
| PORT | 接受 HTTP 要求的通訊埠。 | 
您可以在 app.yaml 檔案中定義其他環境變數,但無法覆寫上述的值。
HTTPS 和轉送 Proxy
App Engine 會在負載平衡器上終止 HTTPS 連線,並將要求轉送至您的應用程式。部分應用程式需要判斷原始要求 IP 和通訊協定。使用者的 IP 位址可在標準 X-Forwarded-For 標頭中使用。需要這項資訊的應用程式應將其網路架構設定為「信任 Proxy」。
檔案系統
這個執行階段包含可寫入的 /tmp 目錄,所有其他目錄則具備唯讀存取權。寫入 /tmp 會佔用系統記憶體。詳情請參閱 TempDir 和 TempFile 說明文件。
中繼資料伺服器
應用程式的每個執行個體都可以使用 App Engine 中繼資料伺服器來查詢與執行個體和專案相關的資訊。
您可以透過以下端點存取中繼資料伺服器:
- http://metadata
- http://metadata.google.internal
傳送至中繼資料伺服器的要求必須包含要求標頭 Metadata-Flavor: Google。此標頭表示要求是在擷取中繼資料值的意圖之下傳送。
下表列出可讓您針對特定中繼資料發出 HTTP 要求的端點:
| 中繼資料端點 | 說明 | 
|---|---|
| /computeMetadata/v1/project/numeric-project-id | 指派給專案的專案編號。 | 
| /computeMetadata/v1/project/project-id | 指派給專案的專案 ID。 | 
| /computeMetadata/v1/instance/zone | 執行個體執行的區域。 | 
| /computeMetadata/v1/instance/service-accounts/default/aliases | |
| /computeMetadata/v1/instance/service-accounts/default/email | 指派給專案的預設服務帳戶電子郵件。 | 
| /computeMetadata/v1/instance/service-accounts/default/ | 列出專案的所有預設服務帳戶。 | 
| /computeMetadata/v1/instance/service-accounts/default/scopes | 列出預設服務帳戶的所有支援範圍。 | 
| /computeMetadata/v1/instance/service-accounts/default/token | 傳回可用來向其他 Google Cloud API 驗證應用程式的驗證憑證。 | 
例如,如要擷取專案 ID,請將要求傳送至 http://metadata.google.internal/computeMetadata/v1/project/project-id。
環境變數
下列為執行階段設定的環境變數:
| 環境變數 | 說明 | 
|---|---|
| GAE_APPLICATION | App Engine 應用程式的 ID。這個 ID 的前置字串為「region code~」,例如在歐洲部署的應用程式為「e~」。 | 
| GAE_DEPLOYMENT_ID | 目前部署的 ID。 | 
| GAE_ENV | App Engine 環境。設為 standard。 | 
| GAE_INSTANCE | 服務目前正在執行的執行個體 ID。 | 
| GAE_MEMORY_MB | 應用程式程序可用的記憶體量,以 MB 為單位。 | 
| GAE_RUNTIME | app.yaml檔案中指定的執行階段。 | 
| GAE_SERVICE | 在 app.yaml檔案中指定的服務名稱。如果未指定服務名稱,則會設為default。 | 
| GAE_VERSION | 服務目前的版本標籤。 | 
| GOOGLE_CLOUD_PROJECT | 與應用程式相關聯的 Google Cloud 專案 ID。 | 
| PORT | 接受 HTTP 要求的通訊埠。 | 
您可以在 app.yaml 檔案中定義其他環境變數,但無法覆寫上述的值。