You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ODM规则或XOM如何识别当前执行环境为生产还是非生产环境

ODM运行环境标识传递解决方案

ODM规则语言本身没有内置专门用于区分运行环境的全局变量,你可以通过以下三种成熟方案实现需求:

  • 通过规则集入参传递环境标识
    先在规则集(RuleSet)定义中新增一个String类型的入参,命名建议为runtimeEnv。在调用规则服务的客户端侧,根据当前部署的环境传入对应枚举值,比如prod/uat/dev。你可以直接在规则动作块中把该参数传递给XOM对应的Java方法,规则示例:
    when
      // 规则条件
    then
      EnvConfig.load(runtimeEnv);
      // 其他规则逻辑
    
    该方案兼容性最强,不依赖ODM版本和部署配置,也支持在规则逻辑中直接根据环境做分支判断。
  • 读取RES自定义部署属性
    登录规则执行服务器(RES)控制台,在对应规则应用/规则集的配置页新增自定义属性,比如键为yourcompany.env.type,不同环境的RES实例设置对应的值。你需要先在BOM中映射IlrContext类型,之后在规则中把上下文对象传给XOM的Java方法,Java侧读取属性示例:
    import ilog.rules.engine.IlrContext;
    
    public class EnvConfig {
        public static void load(IlrContext ruleContext) {
            String env = (String) ruleContext.getRuleSession().getProperty("yourcompany.env.type");
            // 按env加载对应配置
        }
    }
    
  • 读取JVM系统属性
    在RES所在的应用服务器启动参数中添加JVM属性,比如-Dservice.runtime.env=prod,XOM的Java类可以直接通过System.getProperty("service.runtime.env")读取环境标识,不需要修改任何规则代码,适合仅XOM需要使用环境信息的场景。

注意:所有环境标识都应该从部署侧注入,不要在规则或XOM代码中硬编码环境判断逻辑,避免规则包跨环境迁移时需要改代码。

内容的提问来源于stack exchange,提问作者Frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:54:05