

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

# 如何使用 Amazon AppConfig 代理检索配置数据
<a name="appconfig-agent-how-to-use"></a>

A Amazon AppConfig gent 是检索 Amazon AppConfig 功能标志或自由格式配置数据的推荐方法。所有形式的 Amazon 计算都支持该代理，包括亚马逊 EC2、亚马逊 ECS、亚马逊 EKS 和 Lambda。完成初始代理设置后，使用代理检索配置数据比直接调用更简单 Amazon AppConfig APIs。代理会自动实施最佳实践，并且 Amazon AppConfig 由于检索配置的 API 调用较少，因此可能会降低您的使用成本。

**注意**  
 Amazon Web Services 账户 不支持从单独的服务器检索配置数据。

## 使用 Amazon AppConfig 代理进行基于用户或实体的渐进部署
<a name="appconfig-entity-based-gradual-deployments"></a>

Amazon AppConfig 代理支持在逐步推出期间将功能标志或自由格式的配置数据部署到特定细分市场或个人用户。基于实体的渐进部署可确保用户或分区收到配置版本后，无论哪种计算资源为其请求提供服务，他们都可以在整个部署期间继续收到相同的版本。

在基于实体的渐进部署中， Amazon AppConfig 代理会评估每个 HTTP 请求中提供的唯一标识符 (`Entity-Id`)。基于此标识符，代理在整个部署期间始终如一地为新的或以前的配置版本提供服务。此过程可确保用户在收到更新的配置后，仍能继续收到该配置。它还可确保回滚警报有足够的时间和数据来检测问题。

如果配置直接更改了面向用户的行为，并且您的应用程序是否可以接受爆炸半径的更改（完全影响特定用户而不是部分影响所有用户），则可以考虑基于实体的渐进部署。

**重要**  
请注意以下有关基于实体的渐进部署的重要信息：  
基于实体的逐步部署需要 Amazon AppConfig 代理版本 2.0.136060 或更高版本。
`Entity-Id`接受的最大字符串大小为 2 KB。
唯一标识符不得采用硬编码或低基数。
标识符不会发送到 Amazon AppConfig 服务。 Amazon AppConfig 代理在客户端评估唯一标识符。
在部署期间， Amazon AppConfig 代理会跟踪实体和已部署的配置。这种跟踪仅在部署期间维护。部署完成后，跟踪结束。
每个实例都独立 Amazon AppConfig 轮询部署状态，因此随着部署百分比的变化，代理可能会短暂地为同一实体的不同版本提供服务。此窗口由轮询间隔和较短的同步周期决定。您可以通过在 [StartConfigurationSession](https://docs.amazonaws.cn/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html)API 操作`RequiredMinimumPollIntervalInSeconds`中进行设置来减少它。但是，较短的间隔会提高 API 调用率，从而提高成本和风险限制。选择符合您要求的轮询间隔。有关更多信息，请参阅 “ Amazon CLI 参考” [StartConfigurationSession](https://docs.amazonaws.cn/cli/latest/reference/appconfigdata/start-configuration-session.html)中的。

### 启用基于实体的渐进部署
<a name="appconfig-entity-based-gradual-deployments-enabling"></a>

要启用基于实体的渐进部署，请执行以下操作：

1. 更新到 Amazon AppConfig 代理版本 2.0.136060 或更高版本。

1. 检索配置数据时，在 `Entity-Id` HTTP 标头中提供唯一标识符。

以下示例请求使用的电子邮件地址用于 `Entity-Id`

```
GET /applications/myapp/environments/prod/configurations/featureflags HTTP/1.1
Host: localhost:2772
Entity-Id: example@Amazon-example-email.com
```

你可以在请求中加入`Entity-Id`标头：

/applications/ \$1应用程序\$1 /environments/ \$1环境\$1 /configurations/ \$1配置\$1

要查看的代码示例`Entity-Id`，请参阅[使用 Amazon AppConfig Agent 读取自由格式配置文件](appconfig-code-samples-agent-read-configuration.md)。

该`Entity-Id`值可以是任何唯一标识系统中实体的字符串，例如：
+ 客户 ID
+ 电子邮件地址
+ 账户 ID
+ 后端作业 ID
+ 会话范围的标识符（如果适用）