

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

# 在 Linux 伺服器上自訂軟體
<a name="customize-containers-ec2"></a>

本節說明可以在組態檔案中納入的資訊類型，此等組態檔案是用來針對執行 Linux 的 EC2 執行個體，自訂其上的軟體。如需自訂和設定 Elastic Beanstalk 環境的一般資訊，請參閱[設定 Elastic Beanstalk 環境](customize-containers.md)。關於針對執行 Windows 的 EC2 執行個體，來自訂其上的軟體，詳細資訊請參閱 [在 Windows Server 上自訂軟體](customize-containers-windows-ec2.md)。

您可能想要針對您的應用程式相依使用的軟體，來進行自訂和設定。您可以新增要在執行個體佈建期間執行的命令；定義 Linux 使用者和群組；以及在您的環境執行個體上下載或直接建立檔案。這些檔案可能是應用程式所需的相依檔案 (例如由 yum 儲存庫所提供的其他套件)，或組態檔案 (例如代理組態檔案的替代檔案，可用來覆寫 Elastic Beanstalk 預設的特定設定)。

**備註**  
在 Amazon Linux 2 平台上，我們強烈建議您使用 *Buildfile*，而不要在 .ebextensions 組態檔案中提供檔案和命令。*Procfile* 和*平台掛鉤*會盡可能在執行個體佈建期間，在您的環境執行個體上設定和執行自訂程式碼。如需有關這些機制的詳細資訊，請參閱 [擴充 Elastic Beanstalk Linux 平台](platforms-linux-extend.md)。
YAML 憑藉一致的縮排。請在取代範例組態檔中的內容時，讓縮排層級一致，並確認您的文字編輯器使用空格而非定位字元進行縮排。

組態檔案支援下列金鑰，這些金鑰會對執行您應用程式的 Linux 伺服器造成影響。

**Topics**
+ [套件](#linux-packages)
+ [Groups (群組)](#linux-groups)
+ [使用者](#linux-users)
+ [來源](#linux-sources)
+ [檔案](#linux-files)
+ [命令](#linux-commands)
+ [服務](#linux-services)
+ [容器命令](#linux-container-commands)
+ [範例：使用自訂的 Amazon CloudWatch 指標](customize-containers-cw.md)

這些金鑰會以此列的順序處理。

觀看您環境的[事件](using-features.events.md)的同時，開發與測試組態檔案。Elastic Beanstalk 忽略組態檔案，其中包含驗證錯誤，例如無效的金鑰，並不處理同一個檔案其他任何金鑰。當發生這種情況，Elastic Beanstalk 會將警告事件新增到事件日誌。

## 套件
<a name="linux-packages"></a>

您可以使用 `packages` 金鑰，來下載和安裝預先整裝好的應用程式與元件。

### 語法
<a name="linux-packages-syntax"></a>

```
packages: 
  name of package manager:
    package name: version
    ...
  name of package manager:
    package name: version
    ...
  ...
```

您可以使用每個套件管理工具的金鑰來指定多個套件。

### 支援的套件格式
<a name="linux-packages-support"></a>

Elastic Beanstalk 目前支援下列的套件軟體管理工具：yum、rubygems、python 和 rpm。套件會以下列順序處理：rpm、yum，然後是 rubygems 和 python。rubygems 和 python 沒有一定的先後順序。在每個套件管理工具內，不保證套件安裝順序。請使用您的作業系統支援的套件軟體管理工具。

**注意**  
Elastic Beanstalk 支援 Python 適用的兩種基本套件軟體管理工具：pip 和 easy\$1install。不過，在組態檔案的語法中，您必須將套件軟體管理工具的名稱指定為 `python`。當您使用組態檔案指定 Python 套件管理工具時，Elastic Beanstalk 會使用 Python 2.7。如果您的應用程式倚賴不同版本的 Python，您可以在 `requirements.txt` 檔案中指定要安裝的套件。如需詳細資訊，請參閱[使用 Elastic Beanstalk 上的需求檔案指定相依性](python-configuration-requirements.md)。

### 指定版本
<a name="linux-packages-versions"></a>

在每個套件管理工具中，系統會以套件名稱和版本清單來指定各個套件。版本可以是字串、版本清單，亦能是空白字串或清單；空白字串或清單代表要安裝最新版本。如果管理工具為 rpm 格式，則系統會以磁碟上的檔案路徑或 URL 來指定版本。不支援相對路徑。

如果您指定套件的版本，則即使在執行個體上已經安裝該套件的較新版本，Elastic Beanstalk 也會試著安裝您指定的版本。如果已經安裝較新的版本，部署作業會失敗。部分套件管理工具支援多個版本，有些則不支援。如需詳細資訊，請參閱套件管理工具的文件。如果您並未指定版本，而且套件已經安裝某版本，則 Elastic Beanstalk 不會安裝新版本，因為 Elastic Beanstalk 假設您想要保留和使用現有的版本。

### 範例程式碼片段
<a name="linux-packages-snippet"></a>

下列的程式碼片段針對 rpm 指定了版本 URL、要求 yum 的最新版本，以及 rubygems 的 chef 0.10.2 版。

```
packages: 
  yum:
    libmemcached: [] 
    ruby-devel: []
    gcc: []
  rpm:
    epel: http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  rubygems: 
    chef: '0.10.2'
```

## Groups (群組)
<a name="linux-groups"></a>

您可以使用 `groups` 金鑰來建立 Linux/UNIX 群組和指派群組 ID。若要建立群組，請新增一組新的索引鍵/值組，此對組會將新的群組名稱對應至選用的群組 ID。groups 金鑰可以包含一個或多個群組名稱。下表會列出可用的金鑰。

### 語法
<a name="linux-groups-syntax"></a>

```
groups:
  name of group: {}
  name of group:
    gid: "group id"
```

### 選項
<a name="linux-groups-options"></a>

`gid`  
群組 ID 編號。  
如果指定了群組 ID，而該群組的名稱已存在，則群組建立作業會失敗；如果另一個群組已具有指定的 ID，作業系統可能會拒絕群組的建立。

### 範例程式碼片段
<a name="linux-groups-snippet"></a>

下列程式碼片段指定了名為 groupOne 的群組 (未指派群組 ID)，以及名為 groupTwo 的群組 (指定群組 ID 值 45)。

```
groups:
  groupOne: {}
  groupTwo:
    gid: "45"
```

## 使用者
<a name="linux-users"></a>

您可以使用 `users` 金鑰，在 EC2 執行個體上建立 Linux/UNIX 使用者。

### 語法
<a name="linux-users-syntax"></a>

```
users:
  name of user:
    groups:
      - name of group
    uid: "id of the user"
    homeDir: "user's home directory"
```

### 選項
<a name="linux-users-options"></a>

`uid`  
使用者 ID。如果使用者名稱具有不同的使用者 ID，則建立程序會失敗。如果該使用者 ID 已指派給現有的使用者，作業系統可能會拒絕建立要求。

`groups`  
群組名稱清單。使用者會新增到清單中的各群組。

`homeDir`  
使用者的主目錄。

會使用 `/sbin/nologin` 的 shell，來將使用者建立為非互動式系統的使用者。這是設計本身所致，無法修改。

### 範例程式碼片段
<a name="linux-users-snippet"></a>

```
users:
  myuser:
    groups:
      - group1
      - group2
    uid: "50"
    homeDir: "/tmp"
```

## 來源
<a name="linux-sources"></a>

您可以使用 `sources` 金鑰，從公開的 URL 下載封存檔案，然後將檔案解壓縮至 EC2 執行個體上的目標目錄。

### 語法
<a name="linux-sources-syntax"></a>

```
sources:
  target directory: location of archive file
```

### 支援的格式
<a name="linux-sources-support"></a>

支援的格式包括 tar、tar\$1gzip、tar\$1bz2 和 zip。只要 URL 是可公開存取，您就可以參照 Amazon Simple Storage Service (Amazon S3) 等外部位置 (例如，`https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject`)。

### 範例程式碼片段
<a name="linux-sources-example"></a>

下列範例從 Amazon S3 儲存貯體下載了公有的 .zip 檔案，並將該檔案解壓縮至 `/etc/myapp`：

```
sources:  
  /etc/myapp: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject
```

**注意**  
多項擷取不應重複使用相同的目標路徑。擷取另一個相同目標路徑的來源，將會取代而不是附加資料到內容。

## 檔案
<a name="linux-files"></a>

透過 `files` 金鑰，即可在 EC2 執行個體上建立檔案。此內容可以內嵌於組態檔案，或是從 URL 取得。檔案會依詞典編纂順序寫入磁碟。

您可以提供授權用的執行個體描述檔，以使用 `files` 金鑰來從 Amazon S3 下載私有檔案。

如果您指定的檔案路徑已經存在於例證上，則會保留現有檔案，並將副檔名 `.bak` 附加至其名稱。

### 語法
<a name="linux-files-syntax"></a>

```
files:  
  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     source: URL
     authentication: authentication name:

  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     content: |
      # this is my
      # file content
     encoding: encoding format
     authentication: authentication name:
```

### 選項
<a name="linux-files-options"></a>

`content`  
要新增到檔案的字串內容。請指定 `content` 或 `source` 其中之一。

`source`  
要下載檔案的 URL。請指定 `content` 或 `source` 其中之一。

`encoding`  
使用 `content` 選項所指定字串的編碼格式。  
有效值：`plain` \$1 `base64`

`group`  
擁有檔案的 Linux 群組。

`owner`  
擁有檔案的 Linux 使用者。

`mode`  
六位數的 8 進制值，代表此檔案的模式；Windows 系統不支援此金鑰。請使用前三位數來建立符號連結，並採用後三位數來設定許可。若要建立符號連結，請指定 `120xxx`，其中 `xxx` 定義目標檔案的許可。若要指定檔案的許可，請使用三個數字，例如 `000644`。

`authentication`  
所要使用 [CloudFormation 身分驗證方法](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html)的名稱。您可以利用 Resources (資源) 金鑰，在 Auto Scaling 群組的中繼資料中新增身分驗證方法。如需範例，請參閱下列內容。

### 範例程式碼片段
<a name="linux-files-snippet"></a>

```
files:
  "/home/ec2-user/myfile" :
    mode: "000755"
    owner: root
    group: root
    source: http://foo.bar/myfile
 
  "/home/ec2-user/myfile2" :
    mode: "000755"
    owner: root
    group: root
    content: |
      this is my
      file content
```

使用符號連結的範例。這會建立一個 `/tmp/myfile2.txt` 連結，指向現有檔案 `/tmp/myfile1.txt`。

```
files:
  "/tmp/myfile2.txt" :
    mode: "120400"
    content: "/tmp/myfile1.txt"
```

下列範例使用了 Resources (資源) 金鑰來新增名為 S3Auth 的身分驗證方法，並使用此方法，從 Amazon S3 儲存貯體下載私有檔案。

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["amzn-s3-demo-bucket2"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"

files:
  "/tmp/data.json" :
    mode: "000755"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3-us-west-2.amazonaws.com/data.json
```

## 命令
<a name="linux-commands"></a>

您可以使用 `commands` 金鑰來執行 EC2 執行個體上的指令。在設定應用程式和 Web 伺服器和解壓縮應用程式版本的檔案之前執行命令。

以根使用者身分執行指定的命令，並依照名稱的字母順序處理。根據預設，指令會在根目錄中執行。若要從其他目錄來執行指令，請使用 `cwd` 選項。

若要對命令的問題進行疑難排解，您可以在[執行個體日誌](using-features.logging.md)中尋找命令的輸出。

### 語法
<a name="linux-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
    cwd: working directory
    env: 
      variable name: variable value
    test: conditions for command 
    ignoreErrors: true
```

### 選項
<a name="linux-commands-options"></a>

`command`  
指定要執行命令的陣列 (YAML 語法的[區塊序列集合](http://yaml.org/spec/1.2/spec.html#id2759963)) 或字串。部分重要說明：  
+ 如果使用字串，您不需要將整個字串括在引號中。如果使用引號，請逸出出現的相同類型引號常值。
+ 如果使用陣列，則不需跳脫空格字元或用引號括起指令參數。每個陣列元素是單一命令引數。不使用陣列指定多個命令。
以下範例都是同等的：  

```
commands:
  command1:
    command: git commit -m "This is a comment."
  command2:
    command: "git commit -m \"This is a comment.\""
  command3:
    command: 'git commit -m "This is a comment."'
  command4:
    command:
      - git
      - commit
      - -m
      - This is a comment.
```
若要指定多個命令，請使用[常值區塊純量](http://yaml.org/spec/1.2/spec.html#id2760844)，如下所示。  

```
commands:
  command block:
    command: |
      git commit -m "This is a comment."
      git push
```

`env`  
(選用) 設定命令用的環境變數。此屬性會進行覆寫，而非附加至現有的環境。

`cwd`  
(選用) 工作目錄。若未指定，指令會從根目錄 (/) 執行。

`test`  
(選用) 此指令必須傳回 `true` 值 (結束代碼 0)，Elastic Beanstalk 才能處理 `command` 金鑰中包含的指令 (例如 shell 指令碼)。

`ignoreErrors`  
(選用) 一個布林值，在 `command` 金鑰中所包含的指令失敗時 (傳回非零的值)，可用來判定其他的指令是否應該執行。如果即使命令失敗，也想繼續執行命令，請將此值設定為 `true`。如果要在命令失敗時停止執行命令，請將此值設定為 `false`。預設值為 `false`。

### 範例程式碼片段
<a name="linux-commands-snippet"></a>

下列的範例片段執行了 Python 指令碼。

```
commands:
  python_install:
    command: myscript.py
    cwd: /home/ec2-user
    env:
      myvarname: myvarvalue
    test: "[ -x /usr/bin/python ]"
```

## 服務
<a name="linux-services"></a>

您可以使用 `services` 金鑰，來定義執行個體啟動時應啟動或停止的服務。`services` 金鑰也可讓您指定來源、套件與檔案的相依關係，因此如果安裝中的檔案需要重新啟動，則 Elastic Beanstalk 會負責重新啟動服務。

### 語法
<a name="linux-services-syntax"></a>

```
services:
  sysvinit:
    name of service:
      enabled: "true"
      ensureRunning: "true"
      files: 
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
          "package name[: version]"
      commands: 
        - "name of command"
```

### 選項
<a name="linux-services-options"></a>

`ensureRunning`  
設定為 `true`，以確保服務會在 Elastic Beanstalk 完成後執行。  
設定為 `false`，以確保服務不會在 Elastic Beanstalk 完成後執行。  
如果略過此金鑰，將不會改變服務狀態。

`enabled`  
設定為 `true`，來確保服務會在開機時自動啟動。  
設定為 `false`，來確保服務不會在開機時自動啟動。  
如果略過此金鑰，將不會改變此屬性。

`files`  
檔案清單。如果 Elastic Beanstalk 透過檔案區塊直接變更檔案，服務會重新啟動。

`sources`  
目錄清單。如果 Elastic Beanstalk 將封存解壓縮至這些目錄的其中之一，服務會重新啟動。

`packages`  
套件軟體管理工具與套件名稱清單的對應圖。如果 Elastic Beanstalk 安裝或更新這些套件的其中之一，服務會重新啟動。

`commands`  
命令名稱清單。如果 Elastic Beanstalk 執行指定的命令，服務會重新啟動。

### 範例程式碼片段
<a name="linux-services-snippet"></a>

下列是範例程式碼片段：

```
services: 
  sysvinit:
    myservice:
      enabled: true
      ensureRunning: true
```

## 容器命令
<a name="linux-container-commands"></a>

您可以使用 `container_commands` 金鑰，來執行會影響您應用程式原始碼的指令。容器命令的執行會在應用程式和 Web 伺服器設定完成及應用程式版本封存檔解壓縮之後，但是在應用程式版本安裝之前。非容器的命令及其他自訂操作，則會在應用程式的原始碼解壓縮之前執行。

以根使用者身分執行指定的命令，並依照名稱的字母順序處理。容器命令會從暫存目錄執行，您的原始碼會在部署到應用程式伺服器之前，先解壓縮到該目錄。當原始碼部署到最終的位置時，您使用容器命令對暫存目錄中原始碼所進行的變更，也會納入部署。

**注意**  
容器命令的輸出會記錄在 `cfn-init-cmd.log` 執行個體日誌中。如需擷取和檢視執行個體日誌的詳細資訊，請參閱[從 Amazon EC2 執行個體檢視日誌](using-features.logging.md)。

如果只要在單一執行個體上執行指令，您可以使用 `leader_only` 選項；或者，請將 `test` 設定為只在測試指令得出的評估值為 `true` 時，才執行指令。僅限領導者的容器命令，只會在環境建立與部署時執行；其他的命令與伺服器自訂操作，則會在每次佈建或更新執行個體時執行。僅限領導者的容器命令會因為啟動組態變更 (例如變更 AMI ID 或執行個體類型) 而不執行。

### 語法
<a name="linux-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: "command to run"
    leader_only: true
  name of container_command:
    command: "command to run"
```

### 選項
<a name="linux-container-commands-options"></a>

`command`  
要執行的字串或字串陣列。

`env`  
(選用) 在執行命令前先設定環境變數，覆寫掉任何現有的值。

`cwd`  
(選用) 工作目錄。根據預設，這是已經解壓縮應用程式的暫存目錄。

`leader_only`  
(選用) 只在 Elastic Beanstalk 所選擇的單一執行個體上執行指令。僅限領導者的容器命令會先於其他容器命令執行。指令可以是只限領導者或具有 `test`，但只能是其中一種 (`leader_only` 會具有優先性)。

`test`  
(選用) 執行測試命令，此命令必須傳回 `true` 才能執行容器命令。指令可以是只限領導者或具有 `test`，但只能是其中一種 (`leader_only` 會具有優先性)。

`ignoreErrors`  
(選用) 如果容器命令傳回 0 以外的值 (成功)，則請勿讓部署失敗。設定為 `true` 以啟用。

### 範例程式碼片段
<a name="linux-container-commands-snippet"></a>

下列是範例程式碼片段。

```
container_commands:
  collectstatic:
    command: "django-admin.py collectstatic --noinput"
  01syncdb:
    command: "django-admin.py syncdb --noinput"
    leader_only: true
  02migrate:
    command: "django-admin.py migrate"
    leader_only: true
  99customize:
    command: "scripts/customize.sh"
```

# 範例：使用自訂的 Amazon CloudWatch 指標
<a name="customize-containers-cw"></a>

本主題提供組態範例，將 Elastic Beanstalk 指標與適用於基於 Amazon Linux 2 和更新版本的平台的 Amazon CloudWatch 代理程式整合。組態範例使用`.ebextensions`組態檔案中的檔案和命令。

Amazon CloudWatch 是一項 Web 服務，可讓您監控、管理和發佈各種指標，並根據這些指標提供的資料來設定警示動作。您可以定義自用的自訂指標，Elastic Beanstalk 會將這些指標推送到 Amazon CloudWatch。當 Amazon CloudWatch 包含您的自訂指標時，您即可在 Amazon CloudWatch 主控台中查看這些指標。

**Amazon CloudWatch 代理程式**  
Amazon CloudWatch 代理程式允許從跨作業系統的 Amazon EC2 執行個體和內部部署伺服器收集 CloudWatch 指標和日誌。此代理程式支援在系統層級收集的指標，也支援從您的應用程式或服務收集自訂日誌和指標。如需 CloudWatch 代理程式的詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[使用 CloudWatch 代理程式收集指標和日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

**注意**  
Elastic Beanstalk [增強型運作狀態報告](health-enhanced.md) 具備內建的支援功能，可將廣泛的執行個體和環境指標發佈至 CloudWatch。如需詳細資訊，請參閱 [為環境發佈 Amazon CloudWatch 自訂指標](health-enhanced-cloudwatch.md)。

**Topics**
+ [.Ebextensions 組態檔案](#customize-containers-cw-update-roles)
+ [許可](#customize-containers-cw-policy)
+ [在 CloudWatch 主控台中檢視指標](#customize-containers-cw-console)

## .Ebextensions 組態檔案
<a name="customize-containers-cw-update-roles"></a>

此範例使用 .ebextensions 組態檔案中的檔案和指令，在 Amazon Linux 2 平台上設定和執行 Amazon CloudWatch 代理程式。此代理程式會與 Amazon Linux 2 預先封裝。如果您使用的是其他作業系統，則可能需要執行額外步驟來安裝代理程式。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[安裝 CloudWatch 代理程式](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。

若要使用此範例，請將該範例儲存至名為 `cloudwatch.config` 的檔案 (位於您專案目錄最上層名為 `.ebextensions` 的目錄中)，然後使用 Elastic Beanstalk 主控台 (在您的[原始碼套件](applications-sourcebundle.md)中加入 .ebextensions 目錄) 或 [EB CLI](eb-cli3.md) 來部署您的應用程式。

如需關於組態檔案的詳細資訊，請參閱 [使用組態檔案 (`.ebextensions`) 來進行進階的環境自訂](ebextensions.md)。

此檔案包含兩個區段：
+ `files` — 此區段會新增代理程式組態檔案。該檔案會指示代理程式要傳送給 Amazon CloudWatch 的指標和日誌。在此範例中，我們僅傳送 *mem\$1used\$1percent* 指標。如需 Amazon CloudWatch 代理程式支援的完整系統層級指標清單，請參閱 *Amazon CloudWatch 使用者指南*中的 [CloudWatch 代理程式收集的指標](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html)。
+ `container_commands` — 此區段包含以參數形式傳遞組態檔案來啟動代理程式的命令。如需 `container_commands` 的詳細資訊，請參閱 [容器命令](customize-containers-ec2.md#linux-container-commands)。

**.ebextensions/cloudwatch.config**

```
files:  
  "/opt/aws/amazon-cloudwatch-agent/bin/config.json": 
    mode: "000600"
    owner: root
    group: root
    content: |
      {
        "agent": {
          "metrics_collection_interval": 60,
          "run_as_user": "root"
        },
        "metrics": {
          "namespace": "System/Linux",
          "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
          },
          "metrics_collected": {
            "mem": {
              "measurement": [
                "mem_used_percent"
              ]
            }
          }
        }
      }  
container_commands:
  start_cloudwatch_agent: 
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
```

## 許可
<a name="customize-containers-cw-policy"></a>

您環境中的執行個體需要適當的 IAM 許可，才能使用 CloudWatch 代理程式發佈自訂 Amazon CloudWatch 指標。您可以將許可加入環境的[執行個體描述檔](concepts-roles-instance.md)中，來授予您環境的執行個體。您可以在部署應用程式之前或之後，將權限加入執行個體描述檔。

**若要授予發佈 CloudWatch 指標的權限**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 選擇您的環境的執行個體描述檔角色。在預設情況下，當您使用 Elastic Beanstalk 主控台或 [EB CLI](eb-cli3.md) 來建立環境時，這會是 `aws-elasticbeanstalk-ec2-role`。

1. 選擇**許可**索引標籤。

1. 在 **Permissions Policies** (許可政策) 下的 **Permissions** (許可) 區段中，選擇 **Attach policies** (連接政策)。

1. 在**連接許可**下，選擇 AWS 受管政策 **CloudWatchAgentServerPolicy**。然後，按一下 **Attach Policy** (連接政策)。

如需管理政策的詳細資訊，請參閱《*IAM 使用者指南*》中的[使用政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

## 在 CloudWatch 主控台中檢視指標
<a name="customize-containers-cw-console"></a>

將 CloudWatch 組態檔案部署到您的環境之後，請檢查 [Amazon CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch/home)來檢視您的指標。自訂指標將位於 **CWAgent** 命名空間。

如需詳細資訊，請參閱《Amazon CloudWatch 使用者指南》**中的[檢視可用指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。