Google Workspace上下文感知规则CEL代码报错:undefined field 'os'求助
问题原因及解决办法
问题原因
- 字段名称不匹配:Google Workspace的CEL上下文环境中,设备对象的字段命名和你使用的
device.os、device.os_version不一致。官方定义里,标识设备操作系统类型的字段是device.platform,操作系统版本字段是device.osVersion(驼峰命名),所以直接用你写的字段会触发"undefined field"错误。 - 版本号比较逻辑存在潜在问题:直接用字符串比较版本号会出现判断错误,比如字符串"15.0.10"会被认为小于"15.0.2",但实际版本号15.0.10高于15.0.2。
解决办法
1. 修正字段名并使用官方版本比较函数
替换为符合Google Workspace CEL规范的字段名,同时使用内置的version()函数来正确解析版本号进行比较,正确的CEL代码如下:
device.platform == "IOS" && version(device.osVersion) <= version("15.0.0")
关键细节说明
device.platform:取值为全大写的"IOS"(对应iOS设备),其他常见值还有"ANDROID"、"WINDOWS"等。version()函数:Google Workspace CEL提供的内置函数,能将MAJOR.MINOR.PATCH格式的版本字符串转换为可按版本规则比较的对象,确保版本判断逻辑准确。
内容的提问来源于stack exchange,提问作者InquisitivelyAsking23
相关产品推荐
相关产品推荐

