使用 .NET Core on Linux 平台 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 .NET Core on Linux 平台

Amazon Elastic Beanstalk .NET Core on Linux 平台是在 Linux 操作系统上运行的 .NET Core 应用程序的一组平台版本

有关扩展 Elastic Beanstalk 基于 Linux 的平台的各种方法的详细信息,请参阅 扩展 Elastic Beanstalk Linux 平台。以下是一些特定于平台的注意事项。

.NET Core on Linux 平台简介

代理服务器

Elastic Beanstalk .NET Core on Linux 平台包括一个可将请求转发到应用程序的反向代理。默认情况下,Elastic Beanstalk 使用 nginx 作为代理服务器。您可以选择不使用代理服务器,并将 Kestrel 配置为 Web 服务器。默认情况下,Kestrel 包含在 ASP.NET Core 项目模板中。

应用程序结构

您可以发布使用 Elastic Beanstalk 提供的 .NET Core 运行时的运行时依赖应用程序。您还可以发布包含 .NET Core 运行时和源代码包中的应用程序依赖项的自包含应用程序。要了解更多信息,请参阅 捆绑适用于 .NET Core on Linux 平台的应用程序

平台配置

要配置在您的环境中的服务器实例上运行的进程,请在您的源包中包含一个可选的 Procfile。如果您的源代码包中有多个应用程序,则 Procfile 是必需的。

建议您始终在源代码包中将 Procfile 与应用程序一起提供。通过这种方式,您可以精确地控制 Elastic Beanstalk 为应用程序运行的进程。

Elastic Beanstalk 控制台中提供了配置选项,可用于修改运行环境的配置。要避免在终止环境时丢失环境配置,可以使用保存的配置来保存您的设置,并在以后将这些设置应用到其他环境。

要保存源代码中的设置,您可以包含配置文件。在您每次创建环境或部署应用程序时,会应用配置文件中的设置。您还可在部署期间使用配置文件来安装程序包、运行脚本以及执行其他实例自定义操作。

在 Elastic Beanstalk 控制台中应用的设置会覆盖配置文件中的相同设置(如果存在)。这让您可以在配置文件中包含默认设置,并使用控制台中的特定环境设置加以覆盖。有关优先顺序和其他设置更改方法的更多信息,请参阅配置选项

配置 .NET Core on Linux 环境

您可以通过 .NET Core on Linux 平台设置微调 Amazon EC2 实例的行为。您可以使用 Elastic Beanstalk 控制台编辑 Elastic Beanstalk 环境的 Amazon EC2 实例配置。

使用 Elastic Beanstalk 控制台启用到 Amazon S3 的日志轮换,并配置应用程序可从环境中读取的变量。

使用 Elastic Beanstalk 控制台配置 .NET Core on Linux 环境
  1. 打开 Elastic Beanstalk 控制台,然后在 Regions(区域)列表中选择您的 Amazon Web Services 区域。

  2. 在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration(配置)。

  4. Updates, monitoring, and logging(更新、监控和日志记录)配置类别中,选择 Edit(编辑)。

日志选项

日志选项部分有两个设置:

  • Instance profile(实例配置文件)– 指定有权访问与应用程序关联的 Amazon S3 存储桶的实例配置文件。

  • Enable log file rotation to Amazon S3(启用到 Amazon S3 的日志轮换)– 指定是否将应用程序的 Amazon EC2 实例的日志文件复制到与应用程序关联的 Amazon S3 存储桶。

环境属性

Environment Properties(环境属性)部分中,您可以在运行应用程序的 Amazon EC2 实例上指定环境配置设置。环境属性会以密钥值对的形式传递到应用程序。

在运行于 Elastic Beanstalk 中的 .NET Core on Linux 内,可通过使用 Environment.GetEnvironmentVariable("variable-name") 访问环境变量。例如,可以使用以下代码将名为 API_ENDPOINT 的属性读取到某个变量。

string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");

参阅 环境属性和其他软件设置 了解更多信息。

.NET Core on Linux 配置命名空间

您可以使用配置文件设置配置选项并在部署期间执行其他实例配置。配置选项可以通过您使用的 Elastic Beanstalk 服务或平台定义并组织到命名空间中。

除了所有 Elastic Beanstalk 环境支持的选项外,.NET Core on Linux 平台还支持以下命名空间中的选项:

  • aws:elasticbeanstalk:environment:proxy – 选择使用 nginx 或不使用代理服务器。有效值为 nginxnone

以下示例配置文件展示了对特定于 .NET Core on Linux 的配置选项的使用:

例 .ebextensions/proxy-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: none

Elastic Beanstalk 提供了许多用于自定义环境的配置选项。除了配置文件之外,您还可使用控制台、保存的配置、EB CLI 或 Amazon CLI 来配置选项。参阅 配置选项 了解更多信息。