检索基本和多变体功能标志
对于功能标志配置(类型为 AWS.AppConfig.FeatureFlags
的配置),Amazon AppConfig 代理使您能够检索配置中的单个标志或标志子集。如果使用案例只需要使用配置文件中的几个标志,则检索一个或两个标志非常有用。下面的示例使用了 Python。
注意
在配置中调用单个功能标志或标志子集的功能仅在 Amazon AppConfig 代理版本 2.0.45 及更高版本中可用。
您可以从本地 HTTP 端点检索 Amazon AppConfig 配置数据。要访问特定标志或标志列表,请使用 Amazon AppConfig 配置文件的 ?flag=
查询参数。flag_name
检索单个标志及其属性
curl "http://localhost:2772/applications/
APPLICATION_NAME
/environments/ENVIRONMENT_NAME
/configurations/CONFIGURATION_NAME
?flag=FLAG_NAME
"
检索多个标志及其属性
curl "http://localhost:2772/applications/
APPLICATION_NAME
/environments/ENVIRONMENT_NAME
/configurations/CONFIGURATION_NAME
?flag=FLAG_NAME_ONE
&flag=FLAG_NAME_TWO
"
根据调用方上下文检索功能标志变体
以下 Python 示例展示了如何根据调用方上下文检索功能标志变体。为了以最佳方式说明如何进行这些调用,本节使用了基于客户创建以下变体的场景进行的示例调用:
注意
要检索标志变体,必须在计算环境中使用最新版本的 Amazon AppConfig 代理。有关更多信息,请参阅以下主题,这些主题介绍如何为以下每种计算环境更新、安装或添加代理:
-
对于 Lambda 计算环境:添加 Amazon AppConfig 代理 Lambda 扩展
-
对于 Amazon EC2 计算环境:步骤 2:(必需)在 Amazon EC2 实例上安装和启动 Amazon AppConfig Agent
-
对于 Amazon ECS 计算环境:启动 Amazon AppConfig Agent for Amazon ECS 集成
-
对于 Amazon EKS 计算环境:启动 Amazon AppConfig agent for Amazon EKS 集成
使用 jane_doe@example.org 的调用方上下文检索标志数据(尚未选择加入测试版计划的人员):
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \ -H "Context: email=jane_doe@example.org" \ -H "Context: opted_in_to_beta=false" { "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true} }
使用 jane_doe@example.org 的调用方上下文检索标志数据(已 选择加入测试版计划的人员):
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \ -H "Context: email=jane_doe@example.org" \ -H "Context: opted_in_to_beta=true" { "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true} }
使用 jane_doe@qa-testers.example.org 的调用方上下文检索标志数据(此人员是示例组织中的质量保证测试员):
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \ -H "Context: email=jane_doe@qa-testers.example.org" { "ui_refresh": {"_variant":"QA","dark_mode_support":true,"enabled":true} }
在没有调用方上下文的情况下检索标志数据(返回默认变体)
curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features { "ui_refresh": {"_variant":"Default Variant","enabled":false} }
检索流量拆分场景的标志数据,以确定 10 个随机调用方中是否有 1 个收到“取样人群”变体
for i in {0..9} do ; \ curl http://localhost:2772/applications/UIRefresh/environments/Production/configurations/Features \ -H "Context: email=$i@example.org" { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Sample Population","dark_mode_support":false,"enabled":true} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} } { "ui_refresh": {"_variant":"Default Variant","enabled":false} }