View a markdown version of this page

如何使用 Amazon AppConfig 用于检索配置数据的代理 - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

如何使用 Amazon AppConfig 用于检索配置数据的代理

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

注意

Amazon Web Services 账户 不支持单独检索配置数据。

使用 Amazon AppConfig 用于基于用户或实体的渐进部署的代理

Amazon AppConfig 代理支持在逐步推出期间向特定分段或个人用户部署功能标志或自由格式配置数据。 Entity-based 渐进部署可确保用户或分段收到配置版本后,无论使用哪种计算资源满足其请求,他们都会在整个部署期间继续收到相同的版本。

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

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

重要

请注意以下有关基于实体的渐进部署的重要信息:

  • Entity-based 逐步部署需要 Amazon AppConfig 代理版本 2.0.136060 或更高版本。

  • Entity-Id接受的最大字符串大小为 2 KB。

  • 唯一标识符不得采用硬编码或低基数。

  • 标识符不会发送到该 Amazon AppConfig 服务。 Amazon AppConfig 代理在客户端评估唯一标识符。

  • 在部署期间, Amazon AppConfig 代理会跟踪实体和已部署的配置。这种跟踪仅在部署期间保持不变。部署完成后,跟踪结束。

  • 每个 Amazon AppConfig 轮询部署状态的实例都是独立的,因此,随着部署百分比的变化,代理可以短暂地为同一实体的不同版本提供服务。此窗口由轮询间隔和较短的同步周期决定。你可以通过在 StartConfigurationSession API 操作RequiredMinimumPollIntervalInSeconds中进行设置来减少它。但是,较短的间隔会提高 API 调用速率,这可能会增加成本并面临节流风险。选择符合您要求的投票间隔。有关更多信息,请参见 Amazon CLI 参考StartConfigurationSession文献。

支持基于实体的渐进部署

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

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

  2. 检索配置数据时,在 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标头包含在以下请求中:

/应用程序/ {应用程序} /环境/ {环境} /配置/ {配置}

要使用查看代码示例Entity-Id,请参阅使用 Amazon AppConfig Agent 读取自由格式配置文件。

该Entity-Id值可以是唯一标识系统中实体的任何字符串,例如:

  • 客户 ID

  • 电子邮件地址

  • 账户 ID

  • 后端任务 ID

  • Session-scoped 标识符(如果适用)