创建多变体功能标志 - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建多变体功能标志

使用本节中的过程创建功能标志的变体。

开始前的准备工作

请注意以下重要信息。

  • 可以通过编辑现有功能标志来创建其变体。创建新的配置文件时,无法创建新功能标志的变体。首先必须完成创建新配置文件的工作流程。创建配置文件后,可以向配置文件中的任何标志添加变体。有关如何创建新的配置文件的信息,请参阅在 Amazon AppConfig 中创建功能标志配置文件

  • 要检索 Amazon EC2、Amazon ECS 和 Amazon EKS 计算平台的功能标志变体数据,必须使用 Amazon AppConfig 代理版本 2.0.4416 或更高版本。

  • 出于性能原因,Amazon CLI 和 SDK 对 Amazon AppConfig 的调用不检索变体数据。有关 Amazon AppConfig 代理的更多信息,请参阅如何使用 Amazon AppConfig 代理检索配置数据

  • 在创建功能标志变体时,可以为其指定规则。规则是将请求上下文作为输入并生成布尔结果作为输出的表达式。在创建变体之前,请查看标志变体规则支持的操作数和运算符。可以在创建变体之前创建规则。有关更多信息,请参阅 了解多变体功能标志规则

创建多变体功能标志(控制台)

以下过程介绍如何使用 Amazon AppConfig 控制台为现有配置文件创建多变体功能标志。也可以编辑现有功能标志来创建变体。

创建多变体功能标志
  1. 访问 https://console.aws.amazon.com/systems-manager/appconfig/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择应用程序,然后选择一个应用程序。

  3. 配置文件和功能标志选项卡上,选择现有的功能标志配置文件。

  4. 标志部分中,选择添加新标志

  5. 功能标志定义部分中,对于标志名称输入名称。

  6. 对于标志键,输入一个标志标识符来区分同一配置文件中的标志。相同配置文件中的标志不能具有相同的键。创建标志后,可以编辑标志名称,但不能编辑标志键。

  7. (可选)在描述字段中,输入有关此标志的信息。

  8. 变体部分中,选择多变体标志

  9. (可选)在功能标志属性部分中,选择定义属性。属性使您能够在标志中提供其他值。有关属性和约束的更多信息,请参阅了解功能标志属性

    1. 对于,指定一个标志键并从类型列表中选择其类型。有关约束字段支持的选项的信息,请参阅前面引用的有关属性的部分。

    2. 选择必需值以指定属性值是否为必需值。

    3. 选择定义属性来添加其它属性。

    4. 选择应用以保存属性更改。

  10. 功能标志变体部分中,选择创建变体

    1. 对于变体名称,输入名称。

    2. 使用已启用值开关来启用该变体。

    3. 规则文本框中,输入规则。

    4. 使用创建变体 > 在上面创建变体在下面创建变体选项,来为该标志创建其它变体。

    5. 默认变体部分中,使用已启用值开关来启用默认变体。(可选)为在步骤 10 中定义的属性提供值。

    6. 选择 应用

  11. 验证标志及其变体的详细信息,然后选择创建标志

有关部署带有变体的新功能标志的信息,请参阅在 Amazon AppConfig 中部署功能标志和配置数据

创建多变体功能标志(命令行)

以下过程介绍如何使用 Amazon Command Line Interface(在 Linux 或 Windows 上)或 Tools for Windows PowerShell 为现有配置文件创建多变体功能标志。也可以编辑现有功能标志来创建变体。

开始前的准备工作

在使用 Amazon CLI 创建多变体功能标志之前,请完成以下任务。

创建多变体功能标志
  1. 在本地计算机上创建配置文件,该配置文件将指定要创建的多变体标志的详细信息。使用 .json 文件扩展名保存该文件。该文件必须符合 AWS.AppConfig.FeatureFlags JSON 架构。配置文件的架构内容将类似于以下内容。

    { "flags": { "FLAG_NAME": { "attributes": { "ATTRIBUTE_NAME": { "constraints": { "type": "CONSTRAINT_TYPE" } } }, "description": "FLAG_DESCRIPTION", "name": "VARIANT_NAME" } }, "values": { "VARIANT_VALUE_NAME": { "_variants": [ { "attributeValues": { "ATTRIBUTE_NAME": BOOLEAN }, "enabled": BOOLEAN, "name": "VARIANT_NAME", "rule": "VARIANT_RULE" }, { "attributeValues": { "ATTRIBUTE_NAME": BOOLEAN }, "enabled": BOOLEAN, "name": "VARIANT_NAME", "rule": "VARIANT_RULE" }, { "attributeValues": { "ATTRIBUTE_NAME": BOOLEAN }, "enabled": BOOLEAN, "name": "VARIANT_NAME", "rule": "VARIANT_RULE" }, { "attributeValues": { "ATTRIBUTE_NAME": BOOLEAN }, "enabled": BOOLEAN, "name": "VARIANT_NAME", "rule": "VARIANT_RULE" } ] } }, "version": "VERSION_NUMBER" }

    以下是包含三个变体和默认变体的示例。

    { "flags": { "ui_refresh": { "attributes": { "dark_mode_support": { "constraints": { "type": "boolean" } } }, "description": "A release flag used to release a new UI", "name": "UI Refresh" } }, "values": { "ui_refresh": { "_variants": [ { "attributeValues": { "dark_mode_support": true }, "enabled": true, "name": "QA", "rule": "(ends_with $email \"qa-testers.mycompany.com\")" }, { "attributeValues": { "dark_mode_support": true }, "enabled": true, "name": "Beta Testers", "rule": "(exists key::opted_in_to_beta)" }, { "attributeValues": { "dark_mode_support": false }, "enabled": true, "name": "Sample Population", "rule": "(split pct::10 by::$email)" }, { "attributeValues": { "dark_mode_support": false }, "enabled": false, "name": "Default Variant" } ] } }, "version": "1" }
  2. 使用 CreateHostedConfigurationVersion API 将功能标志配置数据保存到 Amazon AppConfig。

    Linux
    aws appconfig create-hosted-configuration-version \ --application-id APPLICATION_ID \ --configuration-profile-id CONFIGURATION_PROFILE_ID \ --content-type "application/json" \ --content file://path/to/feature_flag_configuration_data.json
    Windows
    aws appconfig create-hosted-configuration-version ^ --application-id APPLICATION_ID ^ --configuration-profile-id CONFIGURATION_PROFILE_ID ^ --content-type "application/json" ^ --content file://path/to/feature_flag_configuration_data.json
    PowerShell
    New-APPCHostedConfigurationVersion ` -ApplicationId APPLICATION_ID ` -ConfigurationProfileId CONFIGURATION_PROFILE_ID ` -ContentType "application/json" ` -Content file://path/to/feature_flag_configuration_data.json

    service_returned_content_file 包含您的配置数据,其中包括一些 Amazon AppConfig 生成的元数据。

    注意

    创建托管配置版本时,Amazon AppConfig 会验证您的数据是否符合 AWS.AppConfig.FeatureFlags JSON 架构。 此外,Amazon AppConfig 还会验证数据中的每个要素标志属性是否满足为这些属性定义的约束。