You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

33 lines
1.5 KiB

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"))
}