UpdateAlertPolicyRequest 的构造函数输入无效

Invalid constructor input for UpdateAlertPolicyRequest

我正在尝试使用 Cloud Functions 更新警报策略。我有以下代码行:

filter = "resource.type = \"l7_lb_rule\" AND metric.type = \"logging.googleapis.com/user/stuff_here\"")
alert_policy = {"conditions":[{"condition_absent":{"duration": '1800s',"filter": '{}'.format(filter)}, "displayName":'test'}], "displayName":'test'), "combiner":"OR"}
policy = monitoring_v3.AlertPolicy.from_json(json.dumps(alert_policy))
client_alert.update_alert_policy(policy)

我 运行 与 API 浏览器进行了相同的更新,并且它正在运行。但是云函数 return 我这个错误 TypeError: Invalid constructor input for UpdateAlertPolicyRequest: display_name: "test"

我还想知道我应该将要更新的警报的名称传递到哪里。我试图将名称作为参数或 alert_policy 对象传递,但它总是 return 给我一些错误。

问题是您作为 update_alert_policy 函数的参数传递的东西,正如您在库的 source code 中看到的那样被认为是 UpdateAlertPolicyRequest,第一个位置论证。您需要使用 alert_policy 参数提供您的信息,例如:

# indicate every field you want to update and provide
# the corresponding values in the policy definition
mask = field_mask.FieldMask(paths=['display_name', 'combiner', 'conditions'])
policy = monitoring_v3.AlertPolicy(
    name='your_policy_name',
    display_name='test',
    combiner='OR',
    conditions=[
        monitoring_v3.types.AlertPolicy.Condition(
            display_name='test',
            condition_absent=monitoring_v3.types.AlertPolicy.Condition.MetricAbsence(
                duration='1800s',
                filter='resource.type = "l7_lb_rule" AND metric.type = "logging.googleapis.com/user/stuff_here"'
            )
        )
    ]
)
client.update_alert_policy(alert_policy=policy, update_mask=mask)

图书馆提供了一些可能有用的snippets