

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

# **eb config**
<a name="eb3-config"></a>

## Description
<a name="eb3-configdescription"></a>

管理您環境的作用中[組態](concepts.md#concepts-environmentconfig)設定和[已儲存組態](concepts.md#concepts-configuration)。您可以使用此命令來上傳、下載或列出您環境的已儲存組態。您也可以使用它來下載、顯示或更新其作用中的組態設定。



如果根目錄包含 `platform.yaml` 檔案，其中指定自訂的平台，則此命令也會變更建置器的組態設定。這是根據 `platform.yaml` 中設定的值完成的。

**注意**  
**eb config** 不會顯示環境屬性。若要設定可以從您的應用程式中讀取的環境屬性，請改用 [**eb setenv**](environment-configuration-methods-after.md#configuration-options-after-ebcli-ebsetenv)。

## 語法
<a name="eb3-configsyntax"></a>

以下是用於 **eb config** 命令與您環境的作用中[組態設定](concepts.md#concepts-environmentconfig)搭配使用的語法部分。如需特定範例，請參閱本主題後半內容中的 [範例](#eb3-configexample) 部分。
+  **eb config** – 在您設定為 EDITOR 環境變數的文字編輯器中顯示環境的作用中組態設定。當您儲存對檔案進行的變更並關閉編輯器時，會使用檔案中儲存的選項設定來更新環境。
**注意**  
如果您沒有設定 EDITOR 環境變數，EB CLI 會在 YAML 檔案的預設編輯器中顯示您的選項設定。
+  **eb config *environment-name*** – 顯示並更新已命名環境的組態。組態會顯示在您設定的文字編輯器或預設編輯器 YAML 檔案中。
+ **eb config save** – 將目前環境的作用中組態設定儲存至 `.elasticbeanstalk/saved_configs/` (使用 `[configuration-name].cfg.yml` 作為檔案名稱)。根據預設，EB CLI 會根據環境的名稱，使用*configuration-name*來儲存組態設定。在執行指令時，您可以加入 `--cfg` 選項搭配所要的組態名稱，來指定不同的組態名稱。

  您可以使用 `--tags` 選項來標記已儲存的組態。
+ **eb config `--display`** – 將環境的作用中組態設定寫入 *stdout*，而不是檔案。依預設，這將顯示終端機的組態設定。
+ **eb config `--update configuration_string | file_path`** – 使用在 *configuration\$1string* 中指定的資訊，或在 *file\$1path* 識別的檔案內部，更新目前環境的作用中組態設定。

**注意**  
`--display` 和 `--update` 選項提供了以程式設計方式讀取和修訂環境組態設定的靈活性。

下文說明使用 **eb config** 命令來使用[已儲存組態](concepts.md#concepts-configuration)的語法。如需範例，請參閱本主題後半內容中的 [範例](#eb3-configexample) 部分。
+ **eb config get *config-name*** – 從 Amazon S3 下載已命名儲存的組態。

  
+ **eb config delete *config-name* ** – 刪除 Amazon S3 中已命名儲存的組態。如果您已下載它，也會在本機刪除它。
+ **eb config list** - 列出在 Amazon S3 中的已儲存組態。
+ **eb config put *filename*** - 將已命名儲存的組態上傳到 Amazon S3 儲存貯體。*檔案名稱*必須有副檔名 `.cfg.yml`。若要指定不包含路徑的檔案名稱，您可以在執行指令之前，將檔案儲存到 `.elasticbeanstalk` 或 `.elasticbeanstalk/saved_configs/` 資料夾。或者，您可以提供完整的路徑來指定*檔案名稱*。

## 選項
<a name="eb3-configoptions"></a>


****  

|  名稱  |  描述  | 
| --- | --- | 
|  `--cfg config-name`  |  用於已儲存組態的名稱。 此選項僅適用 **eb config save**。  | 
|  `-d` 或 `--display`  |  顯示目前環境的組態設定 (寫入 *stdout*)。 與 `--format` 選項一起使用，以指定要在 JSON 或 YAML 中的輸出。如果您未指定，輸出採用 YAML 格式。 只有在您使用不含任何其他子命令的 **eb config** 命令時，此選項才起作用。  | 
|  `-f format_type` 或 `--format format_type`  |  指定顯示格式。有效值是 JSON 或 YAML。 預設為 YAML。 此選項僅與 `--display` 選項一起使用。  | 
|  `-﻿-﻿tags key1=value1[,key2=value2 ...]`  |  要新增到您的已儲存的組態的標籤。在清單中指定標籤時，將它們指定為 key=value 對，並以逗號分隔每個標籤。 如需更多詳細資訊，請參閱 [標記已儲存組態](environment-configuration-savedconfig-tagging.md)。 此選項僅適用 **eb config save**。  | 
|  `--timeout timeout`  |  命令逾時前的分鐘數。  | 
|  `-u configuration_string \| file_path` 或 `--update configuration_string \| file_path`  |  更新目前環境的作用中組態設定。 只有在您使用不含任何其他子命令的 **eb config** 命令時，此選項才起作用。 `configuration_string \| file_path` 參數屬於字串類型。字串提供命名空間清單和對應選項，以新增、更新或從環境的組態設定中移除。或者，輸入字串可以代表包含相同資訊的檔案。 若要指定檔案名稱，輸入字串必須遵循格式 `"file://<path><filename>"`。若要指定不包含 `path` 的檔案名稱，請將檔案儲存至您執行命令的資料夾。或者，透過提供完整的路徑來指定檔案名稱。 組態資訊必須符合下列條件。至少需要其中一個區段 **OptionSettings** 或 **OptionsToRemove**。使用 **OptionSettings** 來新增或變更選項。使用 **OptionsToRemove** 從命名空間中移除選項。如需特定範例，請參閱本主題後半內容中的 [範例](#eb3-configexample) 部分。 

**Example**  
*YAML 格式*  

```
OptionSettings:
  namespace1:
    option-name-1: option-value-1
    option-name-2: option-value-2
    ...
OptionsToRemove:
  namespace1:
    option-name-1
    option-name-2
    ...
``` 

**Example**  
*JSON 格式*  

```
{
   "OptionSettings": {
      "namespace1": {
         "option-name-1": "option-value-1",
         "option-name-2": "option-value-2",
         ...
      }
   },
   "OptionsToRemove": {
      "namespace1": {
         "option-name-1",
         "option-name-2",
         ...
      }
   }
}
```  | 
|  [常用選項](eb3-cmd-options.md)  |  | 

## Output
<a name="eb3-configoutput"></a>

如果在未新增子命令或選項的情況下成功執行 **eb config** 或 **eb config *environment-name*** 命令，命令會在您設定為 EDITOR 環境變數的文字編輯器中，顯示目前的選項設定。如果您沒有設定 EDITOR 環境變數，EB CLI 會在 YAML 檔案的預設編輯器中顯示您的選項設定。

當您儲存對檔案進行的變更並關閉編輯器時，會使用檔案中儲存的選項設定來更新環境。會顯示下列輸出以確認組態更新。

```
$ eb config myApp-dev
    Printing Status:
    2021-05-19 18:09:45    INFO    Environment update is starting.
    2021-05-19 18:09:55    INFO    Updating environment myApp-dev's configuration settings.
    2021-05-19 18:11:20    INFO    Successfully deployed new configuration to environment.
```

如果命令使用 `--display` 選項成功執行，會顯示目前環境的組態設定 (寫入 *stdout*)。

如果指令使用 `get` 參數並執行成功，此指令會顯示您所下載本機副本的位置。

如果指令使用 `save` 參數並執行成功，此指令會顯示已儲存檔案的位置。

## 範例
<a name="eb3-configexample"></a>

本節說明如何變更用來檢視與編輯選項設定檔案的文字編輯器。

如果使用 Linux 和 UNIX，下列範例會將編輯器變更為 vim：

```
$ export EDITOR=vim
```

如果使用 Linux 和 UNIX，下列範例會將編輯器變更為 `/usr/bin/kate` 所安裝的任何編輯器。

```
$ export EDITOR=/usr/bin/kate
```

如果使用 Windows，下列範例會將編輯器變更為 Notepad\$1\$1。

```
> set EDITOR="C:\Program Files\Notepad++\Notepad++.exe
```

本節提供的範例，適用於搭配子命令執行時的 **eb config** 命令。

下列範例刪除了名為 `app-tmp` 的已儲存組態。

```
$ eb config delete app-tmp
```

下列範例從您的 Amazon S3 儲存貯體下載了名為 app-tmp 的已儲存組態。

```
$ eb config get app-tmp
```

下列範例列出了您的 Amazon S3 儲存貯體中所儲存組態的名稱。

```
$ eb config list
```

下列範例將名為 app-tmp 的已儲存組態的本機副本，上傳到您的 Amazon S3 儲存貯體。

```
$ eb config put app-tmp
```

下列範例從目前執行的環境儲存了組態設定。如果您未提供用於已儲存組態的名稱，則 Elastic Beanstalk 會根據環境的名稱來將組態檔案命名。例如，名為 *tmp-dev* 的環境將稱為 `tmp-dev.cfg.yml`。Elastic Beanstalk 會將檔案儲存至 `/.elasticbeanstalk/saved_configs/` 資料夾。

```
$ eb config save
```

下列範例說明如何使用 `--cfg` 選項，來將 tmp-dev 環境的組態設定儲存到名為 `v1-app-tmp.cfg.yml` 的檔案。Elastic Beanstalk 會將檔案儲存至 `/.elasticbeanstalk/saved_configs/` 資料夾。如果您未指定環境名稱，則 Elastic Beanstalk 會從目前執行中的環境儲存組態設定。

```
$ eb config save tmp-dev --cfg v1-app-tmp
```

本節提供的範例，適用於在沒有子命令的情況下執行時的 **eb config** 命令。

下列命令會在文字編輯器中顯示目前環境的選項設定。

```
$ eb config
```

下列命令會在文字編輯器中顯示 *my-env* 環境的選項設定。

```
$ eb config my-env
```

下列範例會顯示目前環境的選項設定。它以 YAML 格式輸出，因為沒有使用 `--format` 選項指定特定的格式。

```
$ eb config --display
```

下列範例使用名為 `example.txt` 的檔案中的規格更新目前環境的選項設定。檔案採用 YAML 或 JSON 格式。EB CLI 會自動偵測檔案格式。
+  命名空間 `aws:autoscaling:asg` 的 Minsize 選項設定為 1。
+  命名空間 `aws:elasticbeanstalk:command` 的批次大小設定為 30%。
+  它會從命名空間 `AWSEBV2LoadBalancer.aws:elbv2:loadbalancer` 移除 *IdleTimeout: None* (IdleTimeout：無) 的選項設定。

```
$ eb config --update "file://example.txt"
```

**Example - filename：`example.txt` – YAML 格式**  

```
OptionSettings:
  'aws:elasticbeanstalk:command':
    BatchSize: '30'
    BatchSizeType: Percentage
  'aws:autoscaling:asg':
    MinSize: '1'
OptionsToRemove:
  'AWSEBV2LoadBalancer.aws:elbv2:loadbalancer':
    IdleTimeout
```

**Example - filename：`example.txt` – JSON 格式**  

```
{
    "OptionSettings": {
        "aws:elasticbeanstalk:command": {
            "BatchSize": "30",
            "BatchSizeType": "Percentage"
        },
        "aws:autoscaling:asg": {
            "MinSize": "1"
        }
    },
    "OptionsToRemove": {
        "AWSEBV2LoadBalancer.aws:elbv2:loadbalancer": {
            "IdleTimeout"
        }
    }
}
```

下列範例會更新目前環境的選項設定。此命令會將 `aws:autoscaling:asg` 命名空間的 Minsize 選項設定為 1。

**注意**  
這些範例特定於 Windows PowerShell。它們透過在雙引號 (`"`) 字元前面加一個斜線 (`\`) 字元來逸出其文字出現。不同的作業系統和命令列環境可能具有不同的逸出序列。因此，我們建議您使用先前範例所示的檔案選項。在檔案中指定組態選項不需要逸出字元，而且在不同的作業系統中是一致的。

下列範例採用 JSON 格式。EB CLI 會偵測格式採用 JSON 還是 YAML。

```
PS C:\Users\myUser\EB_apps\myApp-env>eb config --update '{\"OptionSettings\":{\"aws:autoscaling:asg\":{\"MaxSize\":\"1\"}}}'
```

下列範例採用 YAML 格式。若要以正確格式輸入 YAML 字串，該命令包括 YAML 檔案中所需的間距和行尾返回。
+ 使用 "enter" 或 "return" 鍵結束每一行。
+ 以兩個空格開始第二行，以四個空格開始第三行。

```
PS C:\Users\myUser\EB_apps\myApp-env>eb config --update 'OptionSettings:
>>  aws:autoscaling:asg:
>>    MinSize: \"1\"'
```