优维低代码:关联微应用和Feature Flags 特性开关

EASYOPS_youwei · · 1708 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

 

 

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。

连载第三十二期

《高级指引:关联微应用和Feature Flags 特性开关》

1.关联微应用

在某个微应用的左侧菜单中,可以显示一些关联的其它微应用的菜单。

 

# 配置方式

首先,在需要显示关联微应用的菜单配置中设置 showRelatedApps: true,参见 SidebarMenu。

然后,在「小产品_模型关联小产品列表」(模型 ID:_OBJECT_MICROAPP)中配置相关信息:

  • 针对每个需要关联的微应用添加一条实例记录。
  • 正确填写相关字段,其中:

○模型 id: 这一组微应用公共的领域模型 ID(通常是 cmdb 模型 ID),关联微应用将以这个字段作为分组依据

○小产品子页面路径: 关联的小产品的路由 URL 地址,其中通常应包括一个共同的参数注入占位符。

○排序序号: 小的数字在前。

例如:

2.Feature Flags 特性开关

开发中的特性或个别客户定制化的特性可以通过全局特性开关来控制。

# 配置

生产环境

生产环境的特性开关配置在 api_gateway 组件下的conf/conf.yaml文件中的
auth.bootstrap.sys_settings.feature_flags 一节中,配置形式为开关名作 key,是否启用的 Boolean 值作 value。

# 注意不要重复配置已有的相关字段。
auth:
  bootstrap:
    sys_settings:
      feature_flags:
        your-feature: true
        your-another-feature: true

# 本地开发环境

⊙ NOTE

从 brick_next v2.0.1 开始,默认使用远端模式(即 --remote ),需要使用 --no-remote 来启用本地模式。

从 brick_next v2.7.7 开始,在远端模式下将自动启用合并设置(即 --merge-settings),需要使用 --no-merge-settings 来取消合并设置。

当本地开发 yarn serve 使用远端模式时(默认),这些设置将使用远端返回的数据与本地设置进行合并。通过配合使用 --local-settings 或 --no-merge-settings 可以指定完全使用本地设置(本地仓库的 dev-settings.yaml),或完全使用远端设置。

当本地开发 yarn serve 使用本地模式时(即使用 --no-remote),这些设置将从本地仓库的 dev-settings.yaml 读取,它的格式与上述 sys_settings 的格式一致:

feature_flags:
  your-feature: true
  your-another-feature: true

# 使用

在 Storyboard 中可以使用求值表达式来引用特性开关:

brick: "your-brick"
properties:
  hidden: '<% FLAGS["your-feature"] %>'

在构件中,可以使用 Runtime 接口获得开关配置:

import { getRuntime } from "@next-core/brick-kit";


function YourComponent() {
  const featureFlags = getRuntime().getFeatureFlags();
  const enabled = featureFlags["your-feature"];
  // ...
}

# 常用开关配置


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1708 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传