创建多变体功能标志
使用本节中的过程创建功能标志的变体。
开始前的准备工作
请注意以下重要信息。
-
可以通过编辑现有功能标志来创建其变体。创建新的配置文件时,无法创建新功能标志的变体。首先必须完成创建新配置文件的工作流程。创建配置文件后,可以向配置文件中的任何标志添加变体。有关如何创建新的配置文件的信息,请参阅在 Amazon AppConfig 中创建功能标志配置文件。
-
要检索 Amazon EC2、Amazon ECS 和 Amazon EKS 计算平台的功能标志变体数据,必须使用 Amazon AppConfig 代理版本 2.0.4416 或更高版本。
-
出于性能原因,Amazon CLI 和 SDK 对 Amazon AppConfig 的调用不检索变体数据。有关 Amazon AppConfig 代理的更多信息,请参阅如何使用 Amazon AppConfig 代理检索配置数据。
-
在创建功能标志变体时,可以为其指定规则。规则是将请求上下文作为输入并生成布尔结果作为输出的表达式。在创建变体之前,请查看标志变体规则支持的操作数和运算符。可以在创建变体之前创建规则。有关更多信息,请参阅 了解多变体功能标志规则。
创建多变体功能标志(控制台)
以下过程介绍如何使用 Amazon AppConfig 控制台为现有配置文件创建多变体功能标志。也可以编辑现有功能标志来创建变体。
创建多变体功能标志
访问 https://console.aws.amazon.com/systems-manager/appconfig/
,打开 Amazon Systems Manager 控制台。 -
在导航窗格中,选择应用程序,然后选择一个应用程序。
-
在配置文件和功能标志选项卡上,选择现有的功能标志配置文件。
-
在标志部分中,选择添加新标志。
-
在功能标志定义部分中,对于标志名称输入名称。
-
对于标志键,输入一个标志标识符来区分同一配置文件中的标志。相同配置文件中的标志不能具有相同的键。创建标志后,可以编辑标志名称,但不能编辑标志键。
-
(可选)在描述字段中,输入有关此标志的信息。
-
在变体部分中,选择多变体标志。
-
(可选)在功能标志属性部分中,选择定义属性。属性使您能够在标志中提供其他值。有关属性和约束的更多信息,请参阅了解功能标志属性。
-
对于键,指定一个标志键并从类型列表中选择其类型。有关值和约束字段支持的选项的信息,请参阅前面引用的有关属性的部分。
-
选择必需值以指定属性值是否为必需值。
-
选择定义属性来添加其它属性。
-
选择应用以保存属性更改。
-
-
在功能标志变体部分中,选择创建变体。
-
对于变体名称,输入名称。
-
使用已启用值开关来启用该变体。
-
在规则文本框中,输入规则。
-
使用创建变体 > 在上面创建变体或在下面创建变体选项,来为该标志创建其它变体。
-
在默认变体部分中,使用已启用值开关来启用默认变体。(可选)为在步骤 10 中定义的属性提供值。
-
选择 应用。
-
-
验证标志及其变体的详细信息,然后选择创建标志。
有关部署带有变体的新功能标志的信息,请参阅在 Amazon AppConfig 中部署功能标志和配置数据。
创建多变体功能标志(命令行)
以下过程介绍如何使用 Amazon Command Line Interface(在 Linux 或 Windows 上)或 Tools for Windows PowerShell 为现有配置文件创建多变体功能标志。也可以编辑现有功能标志来创建变体。
开始前的准备工作
在使用 Amazon CLI 创建多变体功能标志之前,请完成以下任务。
-
创建功能标志配置文件。有关更多信息,请参阅 在 Amazon AppConfig 中创建功能标志配置文件。
-
更新到 Amazon CLI 的最新版本。有关更多信息,请参阅《Amazon Command Line Interface用户指南》中的 Install or update to the latest version of the Amazon CLI。
创建多变体功能标志
-
在本地计算机上创建配置文件,该配置文件将指定要创建的多变体标志的详细信息。使用
.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" }
-
使用
CreateHostedConfigurationVersion
API 将功能标志配置数据保存到 Amazon AppConfig。service_returned_content_file
包含您的配置数据,其中包括一些 Amazon AppConfig 生成的元数据。注意
创建托管配置版本时,Amazon AppConfig 会验证您的数据是否符合
AWS.AppConfig.FeatureFlags
JSON 架构。 此外,Amazon AppConfig 还会验证数据中的每个要素标志属性是否满足为这些属性定义的约束。