

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

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

## 说明
<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** – 使用文件名 `[configuration-name].cfg.yml` 将当前环境的活动配置设置保存到 `.elasticbeanstalk/saved_configs/`。默认情况下，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 存储桶。*filename*必须具有文件扩展名`.cfg.yml`。要指定不带路径的文件名，可以先将文件保存到 `.elasticbeanstalk` 文件夹或 `.elasticbeanstalk/saved_configs/` 文件夹，然后再运行此命令。或者，您可以*filename*通过提供完整路径来指定。

## 选项
<a name="eb3-configoptions"></a>


****  

|  Name  |  描述  | 
| --- | --- | 
|  `--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 ...]`  |  要添加到保存的配置的标签。在列表中指定标签时，将其指定为键 = 值对，并用逗号分隔每个标签。 有关更多信息，请参阅[标记保存的配置](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` 的文件名，可以将文件保存运行命名的文件夹中。或者，您可以通过提供完整路径来指定 filename。 配置信息必须符合以下条件。至少需要 **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
```

以下示例显示了当前环境的选项设置。因为没有使用 `--format` 选项指定特定格式，它以 YAML 格式输出。

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

以下示例使用名为 `example.txt` 的文件中的规范更新当前环境的选项配置。此文件采用 YAML 或 JSON 格式。EB CLI 会自动检测文件格式。
+  命名空间 `aws:autoscaling:asg` 的 Minsize 选项设置为 1。
+  命名空间 `aws:elasticbeanstalk:command` 的批处理大小设置为 30%。
+  它从命名空间中移除*了IdleTimeout:None* 的选项设置`AWSEBV2LoadBalancer.aws:elbv2:loadbalancer`。

```
$ 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 文件中所需的空格和 end-of-line回车符。
+ 以“enter”或“Return”键结束每行。
+ 第二行以两个空格开头，第三行以四个空格开头。

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