什么是 Amazon AppConfig?
Amazon AppConfig功能标志和动态配置可帮助软件开发者快速、安全地调整生产环境中的应用程序行为,而无需部署全部代码。Amazon AppConfig 加快了软件发布频率,提高了应用程序的弹性,并帮助您更快地解决突发问题。
通过功能标志,您可以逐步向用户发布新功能,并在向所有用户全面部署新功能之前,衡量这些更改的影响。通过操作标志和动态配置,您可以更新阻止列表、允许列表、节流限制、日志记录冗余度,并执行其他操作调整,以快速应对生产环境中的问题。
开始使用 Amazon AppConfig
以下视频可帮助您了解 Amazon AppConfig 的功能。
视频:Amazon AppConfig 简介
观看 Amazon AppConfig 功能视频介绍。
在 Amazon Web Services YouTube 频道
Amazon AppConfig 使用案例
Amazon AppConfig 支持广泛的用例:
-
功能标志和切换 — 在受控环境中安全地向客户发布新功能。如果您遇到问题,请立即回滚更改。
-
应用程序调整— 谨慎引入应用程序变更,同时在生产环境中测试这些变更对用户的影响。
-
允许列表或阻止列表— 无需部署新代码,即可控制高级功能的访问权限或即时阻止特定用户。
-
集中式配置存储 — 在所有工作负载中保持配置数据的有序性和一致性。您可以使用 Amazon AppConfig 来部署存储在 Amazon AppConfig 托管配置存储、Amazon Secrets Manager、Systems Manager 参数存储或亚马逊 S3 中的配置数据。
优势概述
以下简要概述列出了使用 Amazon AppConfig 的优势。
- 提高效率并更快地发布变更
-
使用带有新功能的功能标志可加快向生产环境发布变更的过程。功能标志使您能够使用基于主干的开发方法编写软件,而不是依赖需要在发布前进行复杂合并的长期开发分支。功能标志使您能够在 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 工作原理的高级描述。
- 1. 识别代码中希望在 Amazon AppConfig 中管理的配置值
-
在 Amazon AppConfig 中创建配置配置文件之前,建议您识别代码中希望使用 Amazon AppConfig 动态管理的配置数据。好的例子包括功能标志或切换、允许和阻止列表、日志冗长度、服务限制和节流规则等。这些类型的配置更改频繁,如果不正确可能会导致问题。
如果您的配置数据已存在于云中(例如在 Parameter Store 或 Amazon S3 中),您可以利用 Amazon AppConfig 的验证、部署和扩展功能进一步简化配置数据管理。
- 2. 在 Amazon AppConfig 中创建配置配置文件
-
配置文件包含一个 URI 和一个配置文件类型,其中 URI 可使 Amazon AppConfig 在相应的存储位置找到您的配置数据。Amazon AppConfig 支持两种配置文件类型:功能标志和自由格式配置。两种类型都能通过将功能发布与代码部署解耦,来降低软件开发和部署的风险与复杂性。它们还支持通过分阶段发布实现持续交付和风险缓解。此外,功能标志支持在生产环境中使用真实用户进行测试,而自由形式配置使您能够从其他 Amazon 服务检索配置数据。两种配置文件类型都支持更快的迭代、实验、个性化以及软件生命周期的有效管理。有关创建配置配置文件的更多信息,请参阅 在 Amazon AppConfig 中创建配置文件。
配置文件还可能包含可选的验证程序,以确保配置数据在语法和语义上正确无误。在开始部署时,Amazon AppConfig 使用验证程序以执行检查。如果检测到任何错误,部署将回滚到之前的配置数据。
创建配置配置文件时,您也会在 Amazon AppConfig 中创建一个应用程序。应用程序仅是一个命名空间或类似文件夹的组织结构。
- 3. 部署配置数据
-
开始部署时,Amazon AppConfig 会执行以下任务:
-
使用配置配置文件中的位置路径名,从底层数据存储检索配置数据。
-
使用在创建配置文件时指定的验证程序,验证配置数据在语法和语义上是否正确。
-
将数据副本发送给 Amazon AppConfig Agent,供您的应用程序读取。此副本称为已部署数据。
有关部署配置的更多信息,请参阅 在 Amazon AppConfig 中部署功能标志和配置数据。
-
- 4. 检索配置
-
为检索数据,您的应用程序需向本地主机服务器发起 HTTP 调用,Amazon AppConfig Agent 已在该服务器缓存了您已部署配置数据的本地副本。数据检索是按使用量计费的事件。Amazon AppConfig代理支持多种用例,如 如何使用 Amazon AppConfig 代理检索配置数据 中所述。
如果您的用例不支持 Amazon AppConfig 代理,您可以直接调用 StartConfigurationSession 和 GetLatestConfiguration API 操作,将应用程序配置为轮询 Amazon AppConfig 以获取配置更新。
有关检索配置的更多信息,请参阅 正在检索 Amazon AppConfig 中的功能标志和配置数据。
Amazon AppConfig 定价
Amazon AppConfig 的定价是基于配置数据和功能标志检索的按实际使用量付费。我们建议使用 Amazon AppConfig 代理来帮助优化成本。有关更多信息,请参阅 Amazon Systems Manager 定价