创建告警策略调用create_alert_policy报Condition无conditionAbsent字段错误
问题原因
你遇到的字段不存在报错是因为字段命名不符合Google Cloud Monitoring Alert Policy API的规范,该API所有字段统一使用蛇形命名,而非驼峰命名:
- 你代码里的
conditionAbsent是错误写法,正确字段名为condition_absent - 你之前遇到的
Displayname相关错误,是因为该字段正确写法为display_name,且属于必填字段,不能直接删除,告警策略本身和每一条规则条件都需要单独配置对应的display_name。
修正后代码示例
alert_policy = { 'combiner': 'OR', # 策略级别的展示名称为必填项,可自定义内容 'display_name': 'L7负载均衡规则指标缺失告警', 'conditions': [ { # 替换为正确的蛇形字段名 'condition_absent': { 'duration': '3900s', 'filter': 'resource.type = "l7_lb_rule" AND metric.type = "logging.googleapis.com/user/name_stuff_here"' }, # 单条条件的展示名称为必填项,可自定义内容 'display_name': '指标超过65分钟未上报检测' } ] }
告警策略JSON有效性验证方法
- 本地校验:使用
google-cloud-monitoringPython客户端库自带的AlertPolicy.from_json()方法,传入你的策略字典即可在校验阶段直接抛出字段错误、必填项缺失等提示,无需实际调用创建接口。 - 官方结构参考:直接在Google Cloud控制台的监控告警页面手动创建一个和你需求一致的告警策略,创建完成后在策略详情页选择「查看JSON」,即可导出官方生成的完全符合API规范的结构,直接对照修改代码即可。
内容的提问来源于stack exchange,提问作者Simon Breton
相关产品推荐
相关产品推荐

