什么是 AWS AppConfig? - AWS AppConfig

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

什么是 AWS AppConfig?

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

注意

AWS AppConfig 的能力是 AWS Systems Manager。

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

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

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

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

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

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

  • 监控和自动回滚: AWS AppConfig 与 Amazon 集成 CloudWatch ,可监控应用程序的更改。如果您的应用程序由于配置更改不当而变得不健康,并且该更改触发了警报 CloudWatch,则 AWS AppConfig 会自动回滚更改以最大限度地减少对应用程序用户的影响。

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

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

AWS AppConfig 用例

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

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

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

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

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

使用的好处 AWS AppConfig

AWS AppConfig 为您的组织提供以下好处:

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

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

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

    • 为了进行语义验证, AWS AppConfig 可以调用您拥有的 AWS Lambda 函数来验证配置中的数据。

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

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

    无需使用 Systems Manager SSM 代理或其他 Systems Manager 功能所需的IAM实例配置文件来配置目标。这意味着它 AWS AppConfig 适用于非托管实例。

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

    AWS AppConfig 在运行时将配置更改部署到您的目标,而无需进行繁重的构建过程或使目标停止服务。

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

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

如何 AWS AppConfig 运作

本节简要描述了 AWS AppConfig 工作原理和入门方式。

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

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

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

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

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

3. 创建环境

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

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

4. 创建配置文件

除其他外,配置文件包括 AWS AppConfig 允许URI在其存储位置查找配置数据的配置文件和配置文件类型。 AWS AppConfig 支持两种配置文件类型:功能标志和自由格式配置。功能标志配置文件将其数据存储在 AWS AppConfig 托管的配置存储中,URI仅此而已hosted。对于自由格式配置文件,您可以将数据存储在 AWS AppConfig 托管配置存储库或与集成的任何 AWS 服务中 AWS AppConfig,如中所在中创建自由表单配置文件 AWS AppConfig述。

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

5. 部署配置数据

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

  • 应用程序 ID

  • 配置文件 ID

  • 配置版本

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

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

当您调用StartDeploymentAPI操作时, AWS AppConfig 会执行以下任务:

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

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

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

6. 检索配置

您可以将 AWS AppConfig Agent 配置为本地主机,并让代理轮 AWS AppConfig 询配置更新。代理调用StartConfigurationSessionGetLatestConfigurationAPI操作并在本地缓存您的配置数据。要检索数据,您的应用程序会HTTP调用 localhost 服务器。 AWS AppConfig 代理支持多种用例,如中所述如何使用 AWS AppConfig 代理检索配置数据

如果您的用例不支持 AWS AppConfig 代理,则可以通过直接调用StartConfigurationSessionGetLatestConfigurationAPI操作将应用程序配置 AWS AppConfig 为轮询配置更新。

开始使用 AWS AppConfig

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

视频: AWS AppConfig 功能标志简介

观看有关 AWS AppConfig 功能标记功能的视频介绍。

亚马逊 Web Services YouTube 频道上观看更多 AWS 视频。

以下博客可以帮助您详细了解 AWS AppConfig 其功能:

SDKs

有关 AWS AppConfig 特定语言的信息SDKs,请参阅以下资源:

的定价 AWS AppConfig

的定 AWS AppConfig 价 pay-as-you-go 基于配置数据和功能标志检索。我们建议使用 AWS AppConfig 代理来帮助优化成本。有关更多信息,请参阅AWS Systems Manager 定价

AWS AppConfig 配额

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

注意

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