在中创建功能标志和自由格式配置数据 AWS AppConfig - AWS AppConfig

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

在中创建功能标志和自由格式配置数据 AWS AppConfig

本节中的主题可帮助您完成中的以下任务 AWS AppConfig。这些任务用于创建部署配置数据所需的重要构件。

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

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

2. 创建环境

您可以为每个 AWS AppConfig 应用程序定义一个或多个环境。环境是由 AWS AppConfig 目标组成的逻辑部署组,例如BetaProduction环境中的应用程序。您也可以为应用程序子组件定义环境,例如 AWS Lambda functionsContainersWebMobileBack-end

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

3. 创建配置文件

配置数据是影响应用程序行为的设置的集合。除其他外,配置文件包括 AWS AppConfig 允许URI在存储位置查找配置数据的配置文件和配置类型。 AWS AppConfig 支持以下类型的配置文件:

  • 功能标志:您可以使用功能标志来启用或禁用应用程序中的功能,或者使用标志属性配置应用程序功能的不同特性。 AWS AppConfig 以功能标志格式将功能标志配置存储在 AWS AppConfig 托管配置存储中,该格式包含有关您的标志和旗帜属性的数据和元数据。f URI or 功能标志配置很简单hosted

  • 自由格式配置:自由格式配置可以将数据存储在以下任何服务和功能中:

    • AWS AppConfig 托管配置存储

    • Amazon Simple Storage Service

    • AWS CodePipeline

    • AWS Secrets Manager

    • AWS Systems Manager (SSM) 参数存储

    • SSM文档存储

注意

如果可能,我们建议将您的配置数据托管在 AWS AppConfig 托管配置存储中,因为它提供了最多的功能和增强功能。

4. (可选,但建议使用)创建多变体功能标志

AWS AppConfig 提供基本功能标志,这些标志(如果启用)会为每个请求返回一组特定的配置数据。为了更好地支持用户分段和流量拆分用例, AWS AppConfig 还提供了多变体功能标志,使您可以定义一组可能的标志值以供请求返回。您还可以为多变体标志配置不同的状态(启用或禁用)。当请求配置有变体的标志时,您的应用程序会提供根据一组用户定义的规则 AWS AppConfig 进行评估的上下文。根据请求中指定的上下文和为变体定义的规则,向应用程序 AWS AppConfig 返回不同的标志值。

以下部分包括功能标志和自由格式配置数据示例。

功能标志配置数据

以下功能标志配置数据按地区启用或禁用移动支付和默认付款。

JSON
{ "allow_mobile_payments": { "enabled": false }, "default_payments_per_region": { "enabled": true } }
YAML
--- allow_mobile_payments: enabled: false default_payments_per_region: enabled: true

操作配置数据

以下自由格式配置数据对应用程序处理请求的方式施加了限制。

JSON
{ "throttle-limits": { "enabled": "true", "throttles": [ { "simultaneous_connections": 12 }, { "tps_maximum": 5000 } ], "limit-background-tasks": [ true ] } }
YAML
--- throttle-limits: enabled: 'true' throttles: - simultaneous_connections: 12 - tps_maximum: 5000 limit-background-tasks: - true

访问控制列表配置数据

以下访问控制列表自由格式配置数据指定了哪些用户或组可以访问应用程序。

JSON
{ "allow-list": { "enabled": "true", "cohorts": [ { "internal_employees": true }, { "beta_group": false }, { "recent_new_customers": false }, { "user_name": "Jane_Doe" }, { "user_name": "John_Doe" } ] } }
YAML
--- allow-list: enabled: 'true' cohorts: - internal_employees: true - beta_group: false - recent_new_customers: false - user_name: Jane_Doe - user_name: Ashok_Kumar