什么是 Amazon AppConfig? - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

什么是 Amazon AppConfig?

Amazon AppConfig功能标志和动态配置可帮助软件开发者快速、安全地调整生产环境中的应用程序行为,而无需部署全部代码。Amazon AppConfig 加快了软件发布频率,提高了应用程序的弹性,并帮助您更快地解决突发问题。通过功能标志,您可以逐步向用户发布新功能,并在向所有用户全面部署新功能之前,衡量这些更改的影响。通过操作标志和动态配置,您可以更新阻止列表、允许列表、节流限制、日志记录冗余度,并执行其他操作调整,以快速应对生产环境中的问题。

注意

Amazon AppConfig 是 Amazon Systems Manager 的功能。

提高效率并更快地发布变更

使用带有新功能的功能标志可加快向生产环境发布变更的过程。功能标志使您能够使用基于主干的开发方法编写软件,而不是依赖需要在发布前进行复杂合并的长期开发分支。功能标志使您能够在 CI/CD 管道中安全地推出对用户隐藏的预发布代码。准备发布更改时,可以更新功能标志,而无需部署新代码。启动完成后,该标志仍可作为区块开关,禁用新功能或能力,而无需回滚代码部署。

借助内置安全功能,避免意外更改或故障

Amazon AppConfig 提供了以下安全功能,可帮助您避免启用功能标志或更新可能导致应用程序故障的配置数据。

  • 验证程序:在将更改部署到生产环境之前,验证程序确保配置数据在语法和语义上正确无误。

  • 部署策略:部署策略使您能够在几分钟或几小时内缓慢地将更改发布到生产环境。

  • 监控和自动回滚:Amazon AppConfig与 Amazon CloudWatch 集成,可监控应用程序的更改。如果您的应用程序因错误的配置更改而变得不健康,并且该更改触发了 CloudWatch 中的警报,Amazon AppConfig 会自动回滚更改,以尽量减少对应用程序用户的影响。

安全且可扩展的功能标志部署

Amazon AppConfig 与 Amazon Identity and Access Management (IAM) 集成,提供对服务的细粒度、基于角色的访问。Amazon AppConfig 还与 Amazon Key Management Service(Amazon KMS) 集成以进行加密,与 Amazon CloudTrail 集成以进行审计。在向外部客户发布之前,所有 Amazon AppConfig 安全控制措施最初都是由大规模使用该服务的内部客户共同开发和验证的。

Amazon AppConfig 使用案例

尽管应用程序的配置内容可能因应用程序而异,但 Amazon AppConfig 支持以下用例,这些用例涵盖了广泛的客户需求:

  • 功能标志和切换 — 在受控环境中安全地向客户发布新功能。如果您遇到问题,请立即回滚更改。

  • 应用程序调整— 谨慎引入应用程序变更,同时在生产环境中测试这些变更对用户的影响。

  • 允许列表或阻止列表— 无需部署新代码,即可控制高级功能的访问权限或即时阻止特定用户。

  • 集中式配置存储 — 在所有工作负载中保持配置数据的有序性和一致性。您可以使用 Amazon AppConfig 来部署存储在 Amazon AppConfig 托管配置存储、Amazon Secrets Manager、Systems Manager 参数存储或亚马逊 S3 中的配置数据。

使用 Amazon AppConfig 的好处

Amazon AppConfig 为您的组织提供了以下优势:

  • 减少客户的意外停机时间

    Amazon AppConfig 允许您创建规则以验证配置,从而减少应用程序停机时间。无法部署无效的配置。Amazon AppConfig 提供了两种可选方法以验证配置:

    • 对于语法验证,您可以使用 JSON 架构。Amazon AppConfig 使用 JSON 架构验证配置,以确保配置更改符合应用程序要求。

    • 对于语义验证,Amazon AppConfig 可以调用您拥有的 Amazon Lambda 函数来验证配置中的数据。

  • 快速在一组目标中部署更改

    通过从中心位置部署配置更改,Amazon AppConfig 简化了批量管理应用程序的过程。Amazon AppConfig 支持在 Amazon AppConfig 托管的配置商店、系统管理器参数商店、系统管理器 (SSM) 文档和 Amazon S3 存储的配置。您可以将 Amazon AppConfig 与 EC2 实例上托管的应用程序、Amazon Lambda、容器、移动应用程序或 IoT 设备一起使用。

    目标不需要配置 Systems Manager SSM Agent 或其他 Systems Manager 功能所需的 IAM 实例配置文件。这意味着,Amazon AppConfig 适用于非托管实例。

  • 更新应用程序而不会发生中断

    Amazon AppConfig 在运行时将配置更改部署到目标,而无需执行繁重的生成过程或停止使用目标。

  • 控制在应用程序中部署更改

    在将配置更改部署到目标时,Amazon AppConfig 允许您使用部署策略以最大限度降低风险。部署策略允许您缓慢地向您的设备群部署配置更改。如果在部署过程中遇到问题,您可以在配置更改影响到大多数主机之前将其回滚。

Amazon AppConfig 的工作原理

本节简要介绍了 Amazon AppConfig 的工作原理和入门方法。

1. 确定要在云端管理的代码中的配置值

在开始创建 Amazon AppConfig 构件之前,我们建议您在代码中确定要使用 Amazon AppConfig 来动态管理的配置数据。好的例子包括功能标志或切换、允许和阻止列表、日志冗长度、服务限制和节流规则等。

如果您的配置数据已经存在于云端,您可以利用 Amazon AppConfig 验证、部署和扩展功能进一步简化配置数据管理。

2. 创建应用程序命名空间

要创建命名空间,需要创建一个名为应用程序的 Amazon AppConfig 构件。应用程序只是一个像文件夹一样的组织结构。

3. 创建环境

对于每个 Amazon AppConfig 应用程序,您可以定义一个或多个环境。环境是目标的逻辑分组,例如 BetaProduction 环境中的应用程序、Amazon Lambda 函数或容器。您也可以为应用程序子组件定义环境,例如应用程序的 WebMobileBack-end

您可以为每个环境配置 Amazon CloudWatch 警报。系统在部署配置期间监控警报。如果触发警报,系统将回滚配置。

4. 创建配置文件

配置文件包括一个 URI 和一个配置文件类型,其中 URI 可使 Amazon AppConfig 在其存储位置找到配置数据。 Amazon AppConfig 支持两种配置文件类型:功能标志和自由格式配置。功能标志配置文件将其数据存储在 Amazon AppConfig 托管的配置存储区中,URI 就是 hosted。对于自由格式配置文件,您可以将数据存储在 Amazon AppConfig 托管配置存储区或任何与 Amazon AppConfig 集成的 Amazon 服务中,如 在 Amazon AppConfig 中创建自由格式配置文件 中所述。

配置文件还可能包含可选的验证程序,以确保配置数据在语法和语义上正确无误。在开始部署时,Amazon AppConfig 使用验证程序以执行检查。如果检测到任何错误,部署将回滚到之前的配置数据。

5. 部署配置数据

创建新配置时,应指定以下内容:

  • 应用程序 ID

  • 配置文件 ID

  • 配置版本

  • 要在其中部署配置数据的环境 ID

  • 部署策略 ID,可定义更改生效的速度

调用 StartDeployment API 操作时,Amazon AppConfig 会执行以下任务:

  1. 使用配置文件中的位置 URI 从底层数据存储中读取配置数据。

  2. 使用在创建配置文件时指定的验证程序,验证配置数据在语法和语义上是否正确。

  3. 缓存数据副本,以便应用程序随时检索。此缓存副本被称为已部署数据

6. 检索配置

您可以将 Amazon AppConfig 代理配置为本地主机,并让代理轮询 Amazon AppConfig 以获取配置更新。代理调用 StartConfigurationSessionGetLatestConfiguration API 操作,并在本地缓存配置数据。要检索数据,您的应用程序会向本地主机服务器发出 HTTP 调用。Amazon AppConfig代理支持多种用例,如 简化的检索方法 中所述。

如果您的用例不支持 Amazon AppConfig 代理,您可以直接调用 StartConfigurationSessionGetLatestConfiguration API 操作,将应用程序配置为轮询 Amazon AppConfig 以获取配置更新。

开始使用 Amazon AppConfig

以下资源可以帮助您直接使用 Amazon AppConfig。

视频:Amazon AppConfig 功能标志介绍

观看有关 Amazon AppConfig 功能标志功能的视频介绍。

Amazon Web Services YouTube 频道上观看更多 Amazon 视频。

以下博客可以帮助您进一步了解 Amazon AppConfig 及其功能:

Amazon AppConfig 定价

Amazon AppConfig 的定价是基于配置数据和功能标志检索的按实际使用量付费。我们建议使用 Amazon AppConfig 代理来帮助优化成本。有关更多信息,请参阅 Amazon Systems Manager 定价

Amazon AppConfig 配额

有关 Amazon AppConfig 端点和服务配额以及其他 Systems Manager 配额的信息,请参阅 Amazon Web Services 一般参考

注意

有关存储 Amazon AppConfig 配置的服务的配额的信息,请参阅 关于配置存储配额和限制