package comm import ( "os" "strings" ) // 部署身份(应用名/区域)解析。 // // 同一份部署里历史上存在两个表达「我是哪个应用」的环境变量: // - APP_NAME —— 服务配置托管 / 会议记录编排 / 渠道分发等按应用作用域读配置时用 // - ANALYZE_APP_NAME —— analyze 模块上报统计快照时用(modules.analyze.AppName) // // 两者语义完全相同(都要求「与 console 注册表 app_registry 的 app_name 一致」), // 但线上部署普遍只填了 ANALYZE_APP_NAME、把 APP_NAME 留空——于是所有按作用域读的接口 // (渠道分发 user_getchannelapp(s)、user_getagents_v2、user_getthirdsvcs_v2)都退化成 // 只读「全局默认」行,后台明明按应用配好了却下发不到客户端,且不报错、极难排查。 // // 这里统一收口:APP_NAME 优先,留空则回退 ANALYZE_APP_NAME;都没有才是真正的全局默认("")。 // AppName 返回本部署的应用名(console 注册表 app_registry.app_name)。 // 返回 "" 表示未声明部署身份,调用方按「全局默认」作用域处理。 func AppName() string { if v := strings.TrimSpace(os.Getenv("APP_NAME")); v != "" { return v } return strings.TrimSpace(os.Getenv("ANALYZE_APP_NAME")) } // AppRegion 返回本部署的区域短代码(cn/us/ea/sea…),未配置返回 ""。 func AppRegion() string { return strings.TrimSpace(os.Getenv("APP_REGION")) }