使用 .NET 平台 - AWS App Runner

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 .NET 平台

AWS App Runner .NET 平台提供托管运行时。每个运行时都可以轻松构建和运行带有基于.NET 版本的 Web 应用程序的容器。当你使用.NET 运行时时,App Runner 从托管的.NET 运行时镜像开始。此镜像基于 Amazon Linux Docker 镜像,包含适用于.NET 版本的运行时包以及一些工具和常用的依赖包。App Runner 使用此托管运行时映像作为基础映像,并添加您的应用程序代码来构建 Docker 映像。然后,它会部署此映像以在容器中运行您的 Web 服务。

在使用 App Runner 控制台或 CreateServiceAPI 操作创建服务时,可以为 App Runner 服务指定运行时。您也可以将运行时指定为源代码的一部分。在包含在代码存储库中的 A pp Runner 配置文件中使用runtime关键字。托管运行时的命名约定是 <language-name><major-version>

有关有效的.NET 运行时名称和版本,请参阅。 NET运行时版本信息

每次部署或服务更新时,App Runner 都会将服务的运行时更新到最新版本。如果您的应用程序需要托管运行时的特定版本,则可以使用 App Runner 配置文件中的runtime-version关键字进行指定。您可以锁定到任何级别的版本,包括主要版本或次要版本。App Runner 仅对服务的运行时进行较低级别的更新。

.NET 运行时的版本语法:major[.minor[.patch]]

例如:6.0.9

以下示例演示了版本锁定:

  • 6.0— 锁定主要版本和次要版本。App Runner 仅更新补丁版本。

  • 6.0.9— 锁定到特定的补丁版本。App Runner 不会更新你的运行时版本。

.NET 运行时配置

选择托管运行时时,还必须至少配置生成和运行命令。您可以在创建更新 App Runner 服务时对其进行配置。您可以使用以下方法之一来执行此操作:

  • 使用 App Runner 控制台-在创建过程或配置选项卡的 “配置构建” 部分中指定命令。

  • 使用 App Runner API — 调用CreateServiceUpdateServiceAPI 操作。使用CodeConfigurationValues数据类型的BuildCommandStartCommand成员来指定命令。

  • 使用配置文件-在最多三个构建阶段中指定一个或多个构建命令,并指定一个用于启动应用程序的运行命令。还有其他可选的配置设置。

提供配置文件是可选的。使用控制台或 API 创建 App Runner 服务时,您可以指定 App Runner 是在创建时直接获取配置设置还是从配置文件中获取配置设置。

NET 运行时示例

以下示例显示了用于构建和运行.NET 服务的 App Runner 配置文件。最后一个示例是完整的.NET 应用程序的源代码,您可以将其部署到.NET 运行时服务。

注意

这些示例中使用的运行时版本为 6.0.9。您可以将其替换为要使用的版本。有关支持的最新.NET 运行时版本,请参阅。 NET运行时版本信息

此示例显示了可在.NET 托管运行时中使用的最小配置文件。有关 App Runner 使用最小配置文件做出的假设,请参阅配置文件示例

例 apprunner.yaml
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运行时版本信息

例 apprunner.yaml
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

  • 将添加到已创建的.NET 6 Web 应用程序中。apprunner.yaml

例 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"