.NET 執行階段

總覽

.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 位址:

var metadataClient = Google.Cloud.Metadata.V1.MetadataClient.Create();
var result = await metadataClient.GetMetadataAsync(
    "instance/network-interfaces/0/access-configs/0/external-ip");
return result.Content.ToString();
本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
.NET 文件適用的 App Engine 彈性環境