

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

# 什么是 Amazon AppConfig？
<a name="what-is-appconfig"></a>

Amazon AppConfig 功能标志和动态配置可帮助软件开发者快速安全地调整生产环境中的应用程序行为，而无需部署完整的代码。 Amazon AppConfig 加快软件发布频率，提高应用程序弹性，并帮助您更快地解决紧急问题。

通过功能标志，您可以逐步向用户发布新功能，并在向所有用户全面部署新功能之前，衡量这些更改的影响。通过操作标志和动态配置，您可以更新阻止列表、允许列表、节流限制、日志记录冗余度，并执行其他操作调整，以快速应对生产环境中的问题。

## 开始使用 Amazon AppConfig
<a name="what-is-how-to-get-started-appconfig"></a>

以下视频可以帮助您了解的功能 Amazon AppConfig。

**视频：简介 Amazon AppConfig**  
观看 Amazon AppConfig 功能简介视频。

在[亚马逊 Web Services YouTube 频道](https://www.youtube.com/user/AmazonWebServices)上观看更多 Amazon 视频。

## Amazon AppConfig 用例
<a name="what-is-appconfig-when-to-use"></a>

Amazon AppConfig 支持广泛的用例：
+ **功能标志和切换** — 在受控环境中安全地向客户发布新功能。如果您遇到问题，请立即回滚更改。
+ **应用程序调整**— 谨慎引入应用程序变更，同时在生产环境中测试这些变更对用户的影响。
+ **允许列表或阻止列表**— 无需部署新代码，即可控制高级功能的访问权限或即时阻止特定用户。
+ **集中式配置存储** — 在所有工作负载中保持配置数据的有序性和一致性。您可以使用 Amazon AppConfig 部署存储在 Amazon AppConfig 托管配置存储 Amazon Secrets Manager、Systems Manager 参数存储或 Amazon S3 中的配置数据。

## 优势概述
<a name="what-is-benefits-overview"></a>

以下简要概述列出了使用 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 运作
<a name="what-is-appconfig-how-it-works"></a>

本节对 Amazon AppConfig 工作原理进行了高级描述。

![\[Amazon AppConfig 工作原理图\]](http://docs.amazonaws.cn/appconfig/latest/userguide/images/AppConfigHowItWorks.png)


**1. 在要管理的代码中标识配置值 Amazon AppConfig**  
在中创建配置文件之前 Amazon AppConfig，我们建议您在代码中标识要使用动态管理的配置数据 Amazon AppConfig。好的例子包括功能标志或切换、允许和阻止列表、日志冗长度、服务限制和节流规则等。这些类型的配置经常发生更改，如果不正确可能会导致出现问题。  
如果您的配置数据已存在于云中，例如在 Parameter Store 或 Amazon S3 中，则可以利用 Amazon AppConfig 验证、部署和扩展功能来进一步简化配置数据管理。

**2. 在中创建配置文件 Amazon AppConfig**  
除其他外，配置文件包括一个 Amazon AppConfig 允许在其存储位置查找配置数据的 URI 和配置文件类型。 Amazon AppConfig 支持两种配置文件类型：功能标志和自由格式配置。这两种类型都能通过将功能发布与代码部署分开来降低软件开发和部署的风险与复杂性。它们还支持通过分阶段发布实现持续交付和风险缓解。此外，功能标志允许在生产环境中使用真实用户进行测试，而自由格式配置允许您从其他 Amazon 服务检索配置数据。这两种配置文件类型都可实现更快的迭代、实验、个性化以及软件生命周期的高效管理。有关创建配置配置文件的更多信息，请参阅 [在中创建配置文件 Amazon AppConfig](appconfig-creating-configuration-profile.md)。  
配置文件还可以包括可选的验证器，以确保您的配置数据在语法和语义上都是正确的。 Amazon AppConfig 开始部署时使用验证器执行检查。如果检测到任何错误，部署将回滚到之前的配置数据。  
创建配置配置文件时，您也会在 Amazon AppConfig中创建一个应用程序。应用程序仅是一个命名空间或类似文件夹的组织结构。

**3. 部署配置数据**  
开始部署时，将 Amazon AppConfig 执行以下任务：  

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

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

1. 将数据副本发送给 Amazon AppConfig Agent，供您的应用程序读取。此副本称为*已部署数据*。
有关部署配置的更多信息，请参阅 [在中部署功能标志和配置数据 Amazon AppConfig](deploying-feature-flags.md)。

**4. 检索配置**  
要检索数据，您的应用程序会对本地主机服务器进行 HTTP 调用， Amazon AppConfig 代理已在其中缓存了已部署配置数据的本地副本。检索数据是一个按流量计量的事件。 Amazon AppConfig 代理支持多种用例，如中所述[如何使用 Amazon AppConfig 代理检索配置数据](appconfig-agent-how-to-use.md)。  
如果您的用例不支持 Amazon AppConfig 代理，则可以通过直接调用[StartConfigurationSession](https://docs.amazonaws.cn/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html)和 [GetLatestConfiguration](https://docs.amazonaws.cn/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html)API 操作将应用程序配置 Amazon AppConfig 为轮询配置更新。  
有关检索配置的更多信息，请参阅 [正在检索中的功能标志和配置数据 Amazon AppConfig](retrieving-feature-flags.md)。

## 的定价 Amazon AppConfig
<a name="what-is-appconfig-cost"></a>

的定 Amazon AppConfig 价 pay-as-you-go基于配置数据和功能标志检索。我们建议使用 Amazon AppConfig 代理来帮助优化成本。有关更多信息，请参阅[Amazon Systems Manager 定价](https://www.amazonaws.cn/systems-manager/pricing/)。