總覽
.NET 執行階段是一種軟體堆疊,用於安裝應用程式碼及其依附元件,並執行應用程式。彈性執行階段會在 app.yaml
檔案中宣告:
runtime: aspnetcore
env: flex
在彈性環境中,執行階段會使用 Docker 來建構。
Google Cloud Tools for Visual Studio 會在建構輸出目錄中建立 app.yaml
檔案和 Dockerfile (如果您的專案中沒有這些檔案)。
如果您想使用 GKE 或其他 Docker 主機,則必須根據這個映像檔建立 Dockerfile,該映像檔會複製您的應用程式碼並安裝依附元件。例如:
FROM gcr.io/google-appengine/aspnetcore:2.1
COPY . /app
WORKDIR /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "Metadata.dll"]
HTTPS 和轉送 Proxy
App Engine 會在負載平衡器上終止 HTTPS 連線,並將要求轉送至您的應用程式。應用程式可以檢查 X-Forwarded-Proto
來獲悉原始通訊協定是 HTTP 還是 HTTPS。
有些應用程式還需確認使用者的 IP 位址,您可以在 X-Forwarded-For
標頭中找到此資訊。
擴充執行階段
彈性環境 .NET 執行階段可用於建立自訂執行階段,自訂執行階段會透過 Dockerfile
來設定。
您可以視需要自訂 Dockerfile
和 .dockerignore
,但最終都必須在 app.yaml
中指定 runtime: custom
,而不是 runtime: aspnetcore
。詳情請參閱自訂 .NET 執行階段一文。
環境變數
下列為執行階段環境設定的環境變數:
環境變數 | 說明 |
---|---|
GAE_INSTANCE |
目前執行個體的名稱。 |
GAE_MEMORY_MB |
應用程式程序可用的記憶體量。 |
GAE_SERVICE |
在應用程式的 app.yaml 檔案中指定的服務名稱,如果未指定服務名稱,則會設為 default 。 |
GAE_VERSION |
目前應用程式的版本標籤。 |
GOOGLE_CLOUD_PROJECT |
與應用程式相關聯的專案 ID,Google Cloud Platform 主控台上也可看見此 ID。 |
PORT |
接收 HTTP 要求的通訊埠。 |
您可以使用 appsettings.json
設定其他的設定變數。
中繼資料伺服器
您應用程式中的每個執行個體都可以使用 Compute Engine 中繼資料伺服器來查詢該執行個體的相關資訊,包括主機名稱、外部 IP 位址、執行個體 ID、自訂中繼資料,以及服務帳戶資訊。App Engine 不允許您為每個執行個體設定自訂中繼資料,但是您可以設定全專案的自訂中繼資料,並且從 App Engine 及 Compute Engine 執行個體讀取該中繼資料。
這個函式範例使用中繼資料伺服器,以取得執行個體的外部 IP 位址: