

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

# 在 Linux 平台上使用 Elastic Beanstalk .NET 核心
<a name="dotnet-linux-platform"></a>

本主題說明如何在 Elastic Beanstalk 上設定、建置和執行 Linux 應用程式上的 .NET 核心。

AWS Elastic Beanstalk 針對在 Linux 作業系統上執行的不同 .NET Core 架構版本， 支援多個平台分支。如需完整清單，請參閱 *AWS Elastic Beanstalk 平台*中 [Linux 上的 .NET 核心](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.dotnetlinux)。

如需各種擴充 Elastic Beanstalk Linux 類型平台方式的詳細資訊，請參閱 [擴充 Elastic Beanstalk Linux 平台](platforms-linux-extend.md)。

## Linux 上的 .NET Core 平台考量事項
<a name="dotnet-linux-platform.intro"></a>

### 代理伺服器
<a name="dotnet-linux-platform.proxy"></a>

Elastic Beanstalk Linux 上的 .NET Core 平台包含反向代理程式，可將請求轉送給您的應用程式。根據預設，Elastic Beanstalk 會使用 [NGINX](https://www.nginx.com/) 做為代理伺服器。您可以選擇不使用代理伺服器，並將 [Kestrel](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel) 設定為您的 Web 伺服器。Kestrel 預設會包含在 ASP.NET Core 的專案範本中。

### 應用程式結構
<a name="dotnet-linux-platform.publish-apps"></a>

您可以發佈「執行時間相依」**的應用程式，這些應用程式使用 Elastic Beanstalk 提供的 .NET Core 執行時間。您也可以發佈*自主運作*的應用程式，其中包含 .NET Core 執行時間和您的應用程式在原始碼套件中的相依性。如需詳細資訊，請參閱 [Linux Elastic Beanstalk 平台上 .NET Core 的綁定應用程式](dotnet-linux-platform-bundle-app.md)。

### 平台組態
<a name="dotnet-linux-platform.configuration"></a>

欲設定在環境中伺服器執行個體上執行的程序，請於您的原始碼套件納入選用的 [Procfile](dotnet-linux-procfile.md)。如果原始碼套件中有多個應用程式，則需要有 `Procfile`。

建議務必在原始碼套件和應用程式中永遠提供 `Procfile`。透過此方式，您可以精確控制 Elastic Beanstalk 要為您的應用程式執行哪些程序。

Elastic Beanstalk 主控台中提供了[修改正在執行環境組態](environment-configuration-methods-after.md)的組態選項。要避免在終止環境的組態時遺失組態，您可以使用[已儲存組態](environment-configuration-savedconfig.md)來儲存您的設定，並在之後套用至另一個環境。

若要將設定儲存於原始程式碼，您可以包含[組態檔案](ebextensions.md)。每次您建立環境或部署應用程式，組態檔案裡的設定就會套用。您也可以使用組態檔案來安裝套件、執行指令碼，並在部署期間執行其他執行個體自訂操作。

在 Elastic Beanstalk 主控台中套用的設定會覆寫組態檔案中相同的設定 (如存在)。這可讓您在組態檔案中擁有預設設定，並以主控台的環境專屬設定覆寫之。如需優先順序以及其他變更設定方法的詳細資訊，請參閱[組態選項](command-options.md)。

## 設定您的 Linux 上的 .NET Core 環境
<a name="dotnet-linux-options"></a>

Linux 上的 .NET Core 平台設定可讓您微調 Amazon EC2 執行個體的行為。您可以使用 Elastic Beanstalk 主控台編輯 Elastic Beanstalk 環境的 Amazon EC2 執行個體組態。

使用 Elastic Beanstalk 主控台來啟用至 Amazon S3 的日誌輪換，和設定您的應用程式可以從環境讀取的變數。

**若要使用 Elastic Beanstalk 主控台設定您的 Linux 上的 .NET Core 環境**

1. 開啟 [Elastic Beanstalk 主控台](https://console.aws.amazon.com/elasticbeanstalk)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

1. 在導覽窗格中，選擇**組態**。

1. 在**更新、監控和日誌記錄**組態類別中，選擇**編輯**。

### 日誌選項
<a name="dotnet-linux-logs"></a>

**Log Options (日誌選項)** 區段有兩個設定：
+ **執行個體設定檔** – 指定有權存取與您應用程式相關的 Amazon S3 儲存貯體的執行個體設定檔。
+ **Enable log file rotation to Amazon S3** (啟用 Amazon S3 的日誌檔案輪換) – 指定是否將應用程式 Amazon EC2 執行個體的日誌檔案複製到與應用程式關聯的 Amazon S3 儲存貯體。

### 環境屬性
<a name="dotnet-linux-options-properties"></a>

**Environment Properties (環境屬性)** 區段可讓您針對執行您應用程式的 Amazon EC2 執行個體，來指定其上的環境資訊設定。環境屬性會以金鑰值對的形式傳到應用程式。

在 Elastic Beanstalk 內所執行的 Linux 上的 .NET Core 環境中，可使用 `Environment.GetEnvironmentVariable("{{variable-name}}")` 來存取環境變數。例如，您可使用下列程式碼，來將名為 `API_ENDPOINT` 的屬性讀取到變數。

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

如需詳細資訊，請參閱「[環境變數和其他軟體設定](environments-cfg-softwaresettings.md)」。

## Linux 上的 .NET Core 組態命名空間
<a name="dotnet-linux-namespace"></a>

您可以使用[組態檔案](ebextensions.md)來設定組態選項，並在部署期間執行其他的執行個體設定工作。組態選項可以是[平台特定](command-options-specific.md)選項，也可以套用至 Elastic Beanstalk 服務整體中的所有[平台](command-options-general.md)。組態選項會組織成*命名空間*。

除了[適用於所有 Elastic Beanstalk 環境的支援選項](command-options-general.md)之外，Linux 上的 .NET Core 平台也支援使用下列命名空間的選項：
+ `aws:elasticbeanstalk:environment:proxy` – 選擇使用 NGINX 或不使用代理伺服器。有效值為 `nginx` 或 `none`。

下列組態檔案範例示範 Linux 上的 .NET Core 特定組態選項的使用。

**Example .ebextensions/proxy-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: {{none}}
```

Elastic Beanstalk 可提供許多組態選項讓您自訂環境。除了組態檔案，您也可以使用主控台、已儲存組態、EB CLI 或 AWS CLI來設定組態選項。如需詳細資訊，請參閱[組態選項](command-options.md)。