

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

# 環境變數和其他軟體設定
<a name="environments-cfg-softwaresettings"></a>

**設定更新、監控和日誌**組態頁面可讓您在執行應用程式的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上設定軟體。您可以設定環境變數、 AWS X-Ray 偵錯、執行個體日誌儲存和串流，以及平台特定的設定。

**Topics**
+ [設定平台特定設定](#environments-cfg-softwaresettings-specific)
+ [設定環境屬性 (環境變數)](#environments-cfg-softwaresettings-console)
+ [軟體設定命名空間](#environments-cfg-softwaresettings-configfiles)
+ [存取環境屬性](#environments-cfg-softwaresettings-accessing)
+ [設定 AWS X-Ray 偵錯](environment-configuration-debugging.md)
+ [檢視您的 Elastic Beanstalk 環境日誌](environments-cfg-logging.md)

## 設定平台特定設定
<a name="environments-cfg-softwaresettings-specific"></a>

除了適用於所有環境的一組標準選項外，大部分的 Elastic Beanstalk 平台也可讓您指定特定語言或特定架構的設定。它們會顯示在**設定更新、監控和日誌**頁面的**平台軟體**區段中，而且可採取下列形式。
+ **預設的環境屬性** ‒ Ruby 平台會針對架構設定使用環境屬性，例如 `RACK_ENV` 和 `BUNDLE_WITHOUT`。
+ **預留位置環境屬性** ‒ Tomcat 平台會定義名為 `JDBC_CONNECTION_STRING` 的環境屬性，此屬性未設定為任何值。這類設定較常見於舊的平台版本。
+ **組態選項** ‒ 大多數的平台會以特定平台或共用的命名空間 (例如 `aws:elasticbeanstalk:xray` 或 `aws:elasticbeanstalk:container:python`) 定義[組態選項](command-options.md)。

**在 Elastic Beanstalk 主控台中設定平台特定設定**

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

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

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

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

1. 在**平台軟體**下，進行必要的選項設定變更。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

如需有關平台特定的選項，以及在您的程式碼中取得環境屬性值的詳細資訊，請參閱您的語言或架構的平台主題：
+ Docker – [設定 Elastic Beanstalk Docker 環境](create_deploy_docker.container.console.md)
+ Go – [使用 Elastic Beanstalk Go 平台](go-environment.md)
+ Java SE – [使用 Elastic Beanstalk Java SE 平台](java-se-platform.md)
+ Tomcat – [使用 Elastic Beanstalk Tomcat 平台](java-tomcat-platform.md)
+ Linux 上的 .NET Core ‒ [在 Linux 平台上使用 Elastic Beanstalk .NET 核心](dotnet-linux-platform.md)
+ .NET – [使用 Elastic Beanstalk .NET Windows 平台](create_deploy_NET.container.console.md)
+ Node.js – [使用 Elastic Beanstalk Node.js 平台](create_deploy_nodejs.container.md)
+ PHP – [使用 Elastic Beanstalk PHP 平台](create_deploy_PHP.container.md)
+ Python – [使用 Elastic Beanstalk Python 平台](create-deploy-python-container.md)
+ Ruby – [使用 Elastic Beanstalk Ruby 平台](create_deploy_Ruby.container.md)

## 設定環境屬性 (環境變數)
<a name="environments-cfg-softwaresettings-console"></a>

您可以使用**環境屬性** （也稱為**環境變數**)，將端點、偵錯設定和其他資訊傳遞至應用程式。環境變數可協助您在多個環境中執行應用程式，用於不同的用途，例如開發、測試、預備和生產。

此外，當您[將資料庫新增至環境](using-features.managing.db.md)時，Elastic Beanstalk 會設定環境變數，例如 `RDS_HOSTNAME`，您可以在應用程式程式碼中讀取這些變數來建構連線物件或字串。

**在 Elastic Beanstalk 主控台中設定環境變數**

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

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

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

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

1. 向下捲動至**執行期環境變數**。

1. 選取**新增環境變數**。

1. 針對**來源**選取**純文字**。
**注意**  
下拉式清單中的 **Secrets Manager** 和 **SSM 參數存放**區值用於將環境變數設定為秘密，以存放敏感資料，例如登入資料和 API 金鑰。如需詳細資訊，請參閱[搭配 AWS Secrets Manager 和 AWS Systems Manager 參數存放區使用 Elastic Beanstalk](AWSHowTo.secrets.md)。

1. 輸入**環境變數名稱**和**環境變數值**對。

1. 如果您需要新增更多變數，請重複步驟 **6** 到**步驟 8**。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

**環境屬性限制**
+ **金鑰**可以包含任何英數字元和下列符號：`_ . : / + \ - @`

  列出的這些符號對於環境屬性金鑰是有效的，但是對於您環境平台上的環境變數名稱，可能會是無效的。為了能夠相容於所有的平台，請將環境屬性限定為下列的模式：`[A-Z_][A-Z0-9_]*`
+ **值**可以包含任何英數字元、空格和下列符號：`_ . : / = + \ - @ ' "`
**注意**  
環境屬性值中的某些字元必須逸出。使用反斜線字元 (`\`) 來代表一些特殊字元和控制字元。下列清單包含表示某些需要逸出的字元的範例：  
反斜線 (`\`) — 代表使用 `\\`
單引號 (`'`) — 代表使用 `\'`
雙引號 (`"`) — 代表使用 `\"`
+ **金鑰**和**值**會區分大小寫。
+ 在做為字串儲存時 (格式為 *key*=*value*)，所有環境屬性加起來的大小不能超過 4,096 個位元組。

## 軟體設定命名空間
<a name="environments-cfg-softwaresettings-configfiles"></a>

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

您可以使用 Elastic Beanstalk [組態檔案](ebextensions.md)，在您的來源碼中設定環境屬性和組態選項。使用 [`aws:elasticbeanstalk:application:environment` 命名空間](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)來定義環境屬性。

**Example .ebextensions/options.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api
```

如果您使用組態檔案或 CloudFormation 範本來建立[自訂資源](environment-resources.md)，您可以使用 CloudFormation 函數來取得資源的相關資訊，並在部署期間動態將其指派給環境屬性。下列是 [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/) GitHub 儲存庫中的範例，此範例使用了 [Ref 函數](ebextensions-functions.md)，取得其建立 Amazon SNS 主題的 ARN，並將此 ARN 指派給名為 `NOTIFICATION_TOPIC` 的環境屬性。

**備註**  
如果您使用 CloudFormation 函數定義環境屬性，Elastic Beanstalk 主控台會在評估函數之前顯示 屬性的值。您可以使用 [`get-config` 平台指令碼](custom-platforms-scripts.md)來確認可供您應用程式使用的環境屬性值。
[多容器 Docker](create_deploy_docker_ecs.md) 平台不會用來 CloudFormation 建立容器資源。因此，此平台不支援使用 CloudFormation 函數定義環境屬性。

**Example .Ebextensions/[sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

option_settings:
  aws:elasticbeanstalk:application:environment:
    NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'
```

您也可以使用此功能來散佈 [CloudFormation 虛擬參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html)提供的資訊。此範例會取得目前區域的資訊，並將其指派給名為 `AWS_REGION` 的屬性。

**Example .Ebextensions/[env-regionname.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/env-regionname.config)**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    AWS_REGION: '`{"Ref" : "AWS::Region"}`'
```

大多數的 Elastic Beanstalk 平台會透過用來設定執行個體上所執行軟體的選項 (例如將請求轉送給應用程式的反向代理)，來定義額外的命名空間。如需關於您的平台上可用命名空間的詳細資訊，請參閱以下項目：
+ Go – [Go 組態命名空間](go-environment.md#go-namespaces)
+ Java SE – [Java SE 組態命名空間](java-se-platform.md#java-se-namespaces)
+ Tomcat – [Tomcat 組態命名空間](java-tomcat-platform.md#java-tomcat-namespaces)
+ Linux 上的 .NET Core ‒ [Linux 上的 .NET Core 組態命名空間](dotnet-linux-platform.md#dotnet-linux-namespace)
+ .NET – [aws:elasticbeanstalk:container:dotnet:apppool 命名空間](create_deploy_NET.container.console.md#dotnet-namespaces)
+ Node.js – [Node.js 組態命名空間](create_deploy_nodejs.container.md#nodejs-namespaces)
+ PHP – [組態的命名空間](create_deploy_PHP.container.md#php-namespaces)
+ Python – [Python 組態命名空間](create-deploy-python-container.md#python-namespaces)
+ Ruby – [Ruby 組態命名空間](create_deploy_Ruby.container.md#ruby-namespaces)

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

## 存取環境屬性
<a name="environments-cfg-softwaresettings-accessing"></a>

在大部分的情況中，您會在應用程式的程式碼中存取環境屬性 (如同存取環境變數)。不過，一般而言，環境屬性只會傳遞到應用程式，即使連線到您環境中的執行個體並執行 `env`，也無法檢視。
+ [Go](go-environment.md#go-options-properties) – `os.Getenv`

  ```
  endpoint := os.Getenv("API_ENDPOINT")
  ```
+ [Java SE](java-se-platform.md#java-se-options-properties) – `System.getenv`

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
+ [Tomcat](java-tomcat-platform.md#java-tomcat-options-properties) – `System.getProperty`和 `System.getenv` 

  2[025 年 3 月 26](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) 日當天或之後發行的 Tomcat 平台版本，也可以用來`System.getenv`存取純文字環境變數。您可以繼續使用 `System.getProperty` 來存取純文字環境變數。不過，[存放為秘密的環境變數](AWSHowTo.secrets.env-vars.md)只能使用 `System.getenv`。

  ```
  String endpoint = System.getProperty("API_ENDPOINT");
  ```

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
**重要**  
在 2025 年 3 月 26 日當天或之後發行的 Tomcat 平台版本中新增環境變數的`System.getenv`存取權，可能會導致應用程式發生非預期的行為，這些行為會將環境變數優先於 Java 系統屬性，或從 明確切換`System.getProperty`到 `System.getenv`。 [https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html)如需詳細資訊和建議的動作，請參閱[使用 Elastic Beanstalk Tomcat 平台](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html)。
+ [Linux 上的 .NET Core](dotnet-linux-platform.md#dotnet-linux-options-properties) – `Environment.GetEnvironmentVariable`

  ```
  string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  ```
+ [.NET](create_deploy_NET.container.console.md#dotnet-console-properties) – `appConfig`

  ```
  NameValueCollection appConfig = ConfigurationManager.AppSettings;
  string endpoint = appConfig["API_ENDPOINT"];
  ```
+ [Node.js](create_deploy_nodejs.container.md#nodejs-platform-console-envprops) – `process.env`

  ```
  var endpoint = process.env.API_ENDPOINT
  ```
+ [PHP](create_deploy_PHP.container.md#php-console-properties) – `$_SERVER`

  ```
  $endpoint = $_SERVER['API_ENDPOINT'];
  ```
+ [Python](create-deploy-python-container.md#create-deploy-python-custom-container-envprop) – `os.environ`

  ```
  import os
  endpoint = os.environ['API_ENDPOINT']
  ```
+ [Ruby](create_deploy_Ruby.container.md#create_deploy_Ruby.env.console.ruby.envprops) – `ENV`

  ```
  endpoint = ENV['API_ENDPOINT']
  ```

在應用程式的程式碼以外 (例如在部署期間執行的指令碼)，您可以使用 [`get-config` 平台指令碼](custom-platforms-scripts.md)來存取環境屬性。如需使用 `get-config` 的範例組態，請參閱 [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/search?utf8=%E2%9C%93&q=get-config) GitHub 儲存庫。

# 設定 AWS X-Ray 偵錯
<a name="environment-configuration-debugging"></a>

您可以使用 AWS Elastic Beanstalk 主控台或組態檔案，在環境中的執行個體上執行 AWS X-Ray 協助程式。X-Ray 是一項 AWS 服務，可收集您應用程式提供的請求相關資料，並使用它來建構服務地圖，讓您用來識別應用程式的問題和最佳化的機會。

**注意**  
部分區域未提供 X-Ray。若您於這些區域的其中之一建立環境，將無法在環境中的執行個體上執行 X-Ray 協助程式。  
如需每個區域中 AWS 提供的服務資訊，請參閱[區域表](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

![\[使用 Amazon DynamoDB 存放資料的 Web API 應用程式服務地圖\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/scorekeep-servicemap.png)


X-Ray 提供了可用於檢測應用程式程式碼的軟體開發套件，以及一個將偵錯資訊從軟體開發套件轉送至 X-Ray API 的協助程式應用程式。

**支援平台**

您可以搭配下列 Elastic Beanstalk 平台使用 X-Ray 開發套件：
+ **Go** - 2.9.1 版及更新版本
+ **Java 8** - 2.3.0 版和更新版本
+ **Java 8 搭配 Tomcat 8** - 2.4.0 版和更新版本
+ **Node.js** - 3.2.0 版和更新版本
+ **Windows Server** - 所有在 2016 年 12 月 18 日或其之後發行的平台版本
+ **Python** - 2.5.0 版和更新版本

您可以在支援的平台上透過組態選項，於環境中的執行個體上執行 X-Ray 協助程式。您可於 [Elastic Beanstalk 主控台](#environment-configuration-debugging-console)或透過使用[組態檔案](#environment-configuration-debugging-namespace)來啟用協助程式。

為了將資料上傳至 X-Ray，X-Ray 協助程式需要在 **AWSXrayWriteOnlyAccess** 受管政策中具備 IAM 許可。這些許可包含在 [Elastic Beanstalk 執行個體描述檔](concepts-roles-instance.md)中。如果您不使用預設執行個體描述檔，請參閱*《AWS X-Ray 開發人員指南》*中的[授予常駐程式將資料傳送至 X-Ray 的許可](https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon.html#xray-daemon-permissions)。

使用 X-Ray 進行偵錯需要使用 X-Ray 開發套件。如需說明和範例應用程式，請參閱*《AWS X-Ray 開發人員指南》*中的 [AWS X-Ray入門](https://docs.aws.amazon.com/xray/latest/devguide/xray-gettingstarted.html)。

若您使用不含精靈的平台版本，您仍可在組態檔案中透過指令碼執行它。如需詳細資訊，請參閱*《AWS X-Ray 開發人員指南》*中的[手動下載及執行 X-Ray 常駐程式 (進階)](https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-beanstalk.html#xray-daemon-beanstalk-manual)。

**Topics**
+ [設定除錯](#environment-configuration-debugging-console)
+ [aws:elasticbeanstalk:xray 命名空間](#environment-configuration-debugging-namespace)

## 設定除錯
<a name="environment-configuration-debugging-console"></a>

您可以在 Elastic Beanstalk 主控台中於正在執行的環境上啟用 X-Ray 協助程式。

**在 Elastic Beanstalk 主控台中啟用偵錯**

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

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

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

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

1. 在 **Amazon X-Ray** 區段中，選取**已啟動**。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

您亦可於環境建立期間啟用此選項。如需詳細資訊，請參閱[建立新的環境精靈](environments-create-wizard.md)。

## aws:elasticbeanstalk:xray 命名空間
<a name="environment-configuration-debugging-namespace"></a>

您可於 `XRayEnabled` 命名空間使用 `aws:elasticbeanstalk:xray` 選項，以啟用除錯。

欲在您部署應用程式時自動啟用除錯，請於原始碼的[組態檔案](ebextensions.md)中設定選項，如下所示。

**Example .ebextensions/debugging.config**  

```
option_settings:
  aws:elasticbeanstalk:xray:
    XRayEnabled: true
```

# 檢視您的 Elastic Beanstalk 環境日誌
<a name="environments-cfg-logging"></a>

AWS Elastic Beanstalk 提供兩種方式來定期檢視執行應用程式的 Amazon EC2 執行個體的日誌：
+ 設定您的 Elastic Beanstalk 環境，將輪換的執行個體日誌上傳至環境的 Amazon S3 儲存貯體。
+ 設定環境，將執行個體日誌串流至 Amazon CloudWatch Logs。

當您設定將執行個體日誌串流至 CloudWatch Logs 時，Elastic Beanstalk 會在 Amazon EC2 執行個體上建立代理和部署的 CloudWatch Logs 日誌群組，並將這些日誌檔案即時傳輸至 CloudWatch Logs。如需執行個體日誌的詳細資訊，請參閱 [在 Elastic Beanstalk 環境中檢視 Amazon EC2 執行個體的日誌](using-features.logging.md)。

除了執行個體日誌，如果您為環境啟用[增強行運作狀態](health-enhanced.md)，您可以將環境設定為將運作狀態資訊串流到 CloudWatch Logs。當環境的運作狀態變更，Elastic Beanstalk 會新增記錄到運作狀態日誌群組，並提供新的狀態和描述變更的原因。如需環境運作狀態串流的詳細資訊，請參閱 [將 Elastic Beanstalk 環境運作狀態資訊串流至 Amazon CloudWatch Logs](AWSHowTo.cloudwatchlogs.envhealth.md)。

## 設定執行個體日誌檢視
<a name="environments-cfg-logging-console"></a>

如要檢視執行個體日誌，您可以在 Elastic Beanstalk 主控台啟用執行個體日誌輪換和日誌串流。

**在 Elastic Beanstalk 主控台設定執行個體日誌輪換和日誌串流**

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

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

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

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

1. 在 **S3 日誌儲存**區段中，選擇**輪換日誌**下的**已啟動**以將輪換日誌上傳到 Amazon S3。

1. 在 **Instance log streaming to CloudWatch Logs (執行個體日誌串流至 CloudWatch Logs)** 區段中進行以下設定：
   + **日誌串流** ‒ 選取**已啟動**以啟用日誌串流。
   + **Retention (保留)** ‒ 指定在 CloudWatch Logs 中保留日誌的天數。
   + **Lifecycle (生命週期)** ‒ 設為 **Delete logs upon termination (終止即刪除日誌)**，在環境終止立即刪除 CloudWatch Logs 的日誌，無須等待其過期。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

您在啟用日誌串流後，返回 **Software (軟體)** 組態類別或頁面，並且尋找 **Log Groups (日誌群組)** 連結。按一下此連結，在 CloudWatch 主控台中查看您的執行個體日誌。

## 設定環境運作狀態日誌檢視
<a name="environments-cfg-logging-health-console"></a>

如要檢視環境運作狀態日誌，您可以在 Elastic Beanstalk 主控台啟用環境運作狀態日誌串流。

**在 Elastic Beanstalk 主控台中設定環境運作狀態日誌串流**

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

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

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

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

1. 轉至**監控**區段。

1. 在 **Health event streaming to CloudWatch Logs (運作狀態事件串流至 CloudWatch Logs)** 之下設定以下設定：
   + **日誌串流** ‒ 選擇**已啟動**以啟用日誌串流。
   + **Retention (保留)** ‒ 指定在 CloudWatch Logs 中保留日誌的天數。
   + **Lifecycle (生命週期)** ‒ 設為 **Delete logs upon termination (終止即刪除日誌)**，在環境終止立即刪除 CloudWatch Logs 的日誌，無須等待其過期。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

## 日誌檢視命名空間
<a name="environments-cfg-logging-namespaces"></a>

以下命名空間包含日誌檢視的設定：
+ [`aws:elasticbeanstalk:hostmanager`](command-options-general.md#command-options-general-elasticbeanstalkhostmanager) ‒ 設定將輪換日誌上傳到 Amazon S3。
+ [`aws:elasticbeanstalk:cloudwatch:logs`](command-options-general.md#command-options-general-cloudwatchlogs) ‒ 設定將執行個體日誌串流至 CloudWatch。
+ [`aws:elasticbeanstalk:cloudwatch:logs:health`](command-options-general.md#command-options-general-cloudwatchlogs-health) ‒ 設定將環境運作狀態串流至 CloudWatch。