Go 1.12 執行階段環境

Go 1.12 執行階段是一種軟體堆疊,用於安裝網路服務的程式碼及其依附元件,並執行您的服務。

在標準環境中,適用於 App Engine 的 Go 1.12 執行階段會在 app.yaml 檔案中宣告:

runtime: go112

Go 版本

Go 1.12 執行階段環境會使用穩定的 Go 1.12 最新版本。App Engine 會在部署時自動更新到最新的次要修訂版本,但是不會自動更新主要版本。

舉例來說,您的應用程式在部署時可能採用了 Go 1.12.1,且在後續的部署作業中自動更新到版本 1.12.2,但它並不會自動更新到 Go 1.13。

依附元件

如需瞭解如何宣告及管理依附元件,請參閱指定相依元件

環境變數

下列為執行階段設定的環境變數:

環境變數 說明
GAE_APPLICATION App Engine 應用程式的 ID。
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 與應用程式相關聯的 GCP 專案 ID。
NODE_ENV 在部署服務時設定為 production
PORT 接受 HTTP 要求的通訊埠。

您可以app.yaml 檔案中定義其他環境變數,但除 NODE_ENV 以外,無法覆寫上述的值。

HTTPS 和轉送 Proxy

App Engine 會在負載平衡器上終止 HTTPS 連線,並將要求轉送至您的應用程式。部分應用程式需要判斷原始要求 IP 和通訊協定。您可以在標準 X-Forwarded-For 標頭中找到使用者的 IP 位址。需要這項資訊的應用程式應將其網路架構設定為信任 Proxy。

檔案系統

執行階段包含可寫入的 /tmp 目錄,其他目錄則僅有唯讀權限。寫入 /tmp 會佔用系統記憶體。詳情請參閱 TempDirTempFile 說明文件。

中繼資料伺服器

應用程式的每個執行個體都可以使用 App Engine 中繼資料伺服器來查詢與執行個體和專案相關的資訊。

您可以透過以下端點存取中繼資料伺服器:

  • http://metadata
  • http://metadata.google.internal

下表列出可讓您針對特定中繼資料發出 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

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

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

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