使用 .NET 平台 - AWS App Runner

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 .NET 平台

AWS App Runner .NET 平台提供受管理的執行階段。每個執行階段都可以使用以 .NET 版本為基礎的 Web 應用程式輕鬆建置和執行容器。當您使用 .NET 執行階段時,應用程式執行階段會以託管 .NET 執行階段映像開始。此映像檔是以 Amazon Linux Docker 映像檔為基礎,其中包含一個 .NET 版本的執行階段套件,以及一些工具和常用的相依性套件。App Runner 使用此託管運行時映像作為基本映像,並添加您的應用程序代碼來構建 Docker 映像。然後,它將部署此映像以在容器中運行 Web 服務。

當您使用應用程式執行器主控台或 CreateServiceAPI 作業建立服務時,您可以指定應用程式執行器服務的執行階段。您也可以將執行階段指定為原始程式碼的一部分。在您包含在程式碼儲存庫中的 App Runner 設定檔中使用runtime關鍵字。託管運行時的命名約定是 <language-name><major-version>

如需有效的 .NET 執行階段名稱和版本,請參閱。 NET執行期版本資訊

App Runner 會在每次部署或服務更新時,將服務的執行階段更新為最新版本。如果您的應用程式需要特定版本的受管理執行階段,您可以使用 App Runner 設定檔中的runtime-version關鍵字來指定它。您可以鎖定到任何級別的版本,包括主要或次要版本。應用程序運行器僅對服務的運行時進行較低級別的更新。

.NET 執行階段的版本語法:major[.minor[.patch]]

例如:6.0.9

下列範例會示範版本鎖定:

  • 6.0-鎖定主要和次要版本。應用程序運行器僅更新補丁版本。

  • 6.0.9— 鎖定到特定的修補程式版本。應用程序運行器不會更新您的運行時版本。

.NET 運行時配置

當您選擇受管理的執行階段時,您也必須設定最低限度的建置和執行命令。您可以在創建更新應用程序運行器服務時進行配置。您可以使用下列其中一種方法來執行此操作:

  • 使用 App Runner 主控台 — 在建立程序或設定索引標籤的 [設定組建] 區段中指定命令。

  • 使用應用程式執行程式 API — 呼叫CreateServiceUpdateServiceAPI 作業。使用CodeConfigurationValues資料類型的BuildCommandStartCommand成員指定命令。

  • 使用組態檔案 — 在最多三個建置階段中指定一或多個建置命令,以及用來啟動應用程式的單一執行命令。還有其他可選配置設置。

提供組態檔案是選擇性的。當您使用主控台或 API 建立 App Runner 服務時,您可以指定應用程式執行器是在建立時直接取得您的組態設定,還是從組態檔案取得您的組態設定。

.NET 運行時示例

下列範例顯示用於建置和執行 .NET 服務的應用程式執行器組態檔案。最後一個範例是您可以部署至 .NET 執行階段服務的完整 .NET 應用程式的原始程式碼。

注意

這些範例中使用的執行階段版本為 6.0.9。您可以將其替換為您要使用的版本。如需支援的最新 .NET 執行階段版本,請參閱 。 NET執行期版本資訊

此範例顯示可與 .NET 管理執行階段搭配使用的最小組態檔案。如需 App Runner 使用最小組態檔案所做的假設,請參閱組態檔案範例

範例 阿普魯人. 羊
version: 1.0 runtime: dotnet6 build: commands: build: - dotnet publish -c Release -o out run: command: dotnet out/HelloWorldDotNetApp.dll

此範例顯示所有組態索引鍵與 .NET 託管執行階段的使用方式。

注意

這些範例中使用的執行階段版本為 6.0.9。您可以將其替換為您要使用的版本。如需支援的最新 .NET 執行階段版本,請參閱 。 NET執行期版本資訊

範例 阿普魯人. 羊
version: 1.0 runtime: dotnet6 build: commands: pre-build: - scripts/prebuild.sh build: - dotnet publish -c Release -o out post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 6.0.9 command: dotnet out/HelloWorldDotNetApp.dll network: port: 5000 env: APP_PORT env: - name: ASPNETCORE_URLS value: "http://*:5000"

此範例顯示可部署至 .NET 執行階段服務之完整 .NET 應用程式的原始程式碼。

注意
  • 運行以下命令來創建一個簡單的 .NET 6 Web 應用程序: dotnet new web --name HelloWorldDotNetApp -f net6.0

  • 添加apprunner.yaml到創建的 .NET 6 網絡應用程序。

範例 HelloWorldDotNetApp
version: 1.0 runtime: dotnet6 build: commands: build: - dotnet publish -c Release -o out run: command: dotnet out/HelloWorldDotNetApp.dll network: port: 5000 env: APP_PORT env: - name: ASPNETCORE_URLS value: "http://*:5000"