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