.NET 執行階段是一種軟體堆疊,負責安裝應用程式程式碼和依附元件,然後在彈性環境中執行該應用程式。
.NET 版本
.NET 8 是使用buildpack 建構的。如需支援的 .NET 版本完整清單,以及對應的 Ubuntu 版本,請參閱執行階段支援時間表。
如要使用支援的 .NET 版本,您必須:
使用您要使用的 .NET 版本更新專案檔案。
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <None Update="app.yaml"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </None> </ItemGroup> </Project>
詳情請參閱「從 ASP.NET Core 3.1 遷移至 6.0」。
安裝 gcloud CLI 420.0.0 以上版本。您可以執行 gcloud components update 指令來更新 CLI 工具。如要查看已安裝的版本,您可以執行 gcloud version 指令。
在
app.yaml
檔案中指定operating_system
設定:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
您也可以在
app.yaml
檔案中加入runtime_version
設定,以便指定執行階段版本。根據預設,如果未指定runtime_version
設定,App Engine 會使用最新的 LTS .NET 版本。舉例來說,在 Ubuntu 22 上指定 .NET 8 時,app.yaml
檔案會如下所示:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
先前的執行階段版本
如要指定特定的 .NET SDK 版本,請更新專案檔案。詳情請參閱「從 ASP.NET Core 3.1 遷移至 6.0」。
如果您想使用 GKE 或其他 Docker 主機,則必須建立 Dockerfile,該檔案會複製您的應用程式碼並安裝依附元件。詳情請參閱自訂執行階段。
如要部署 .NET 應用程式,請在應用程式所在的根目錄中執行下列指令:
dotnet restore
dotnet publish -c Release
gcloud app deploy
支援其他 .NET 執行階段
如果您需要使用不受支援的 .NET 版本,可以建立自訂執行階段,並選取含有所需 .NET 版本的有效基本映像檔。
如需瞭解 Google 提供的基本映像檔或 Docker .NET 基本映像檔,請參閱「建構自訂執行階段」一文。
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 控制台上顯示 |
PORT |
接收 HTTP 要求的通訊埠。 |
您可以使用 appsettings.json
設定其他設定變數。
中繼資料伺服器
您應用程式中的每個執行個體都可以使用 Compute Engine 中繼資料伺服器來查詢該執行個體的相關資訊,包括主機名稱、外部 IP 位址、執行個體 ID、自訂中繼資料,以及服務帳戶資訊。雖然 App Engine 不允許您為每個執行個體設定自訂中繼資料,但是您可以設定全專案的自訂中繼資料,並從您的 App Engine 及 Compute Engine 執行個體讀取該資料。
這個函式範例使用中繼資料伺服器,以取得執行個體的外部 IP 位址: