UpdateAllertPolicyRequest的构造函数输入无效

2024-04-23 19:17:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用云函数更新警报策略。我有以下几行代码:

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资源管理器运行相同的更新,它正在运行。但是,云函数返回我这个错误TypeError: Invalid constructor input for UpdateAlertPolicyRequest: display_name: "test"

我还想知道我应该在哪里传递我要更新的警报的名称。我试图将名称作为参数或alert_策略对象传递,但它总是返回某种错误


Tags: 函数代码test名称jsontype错误policy
1条回答
网友
1楼 · 发布于 2024-04-23 19:17:55

问题是,您正在作为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

相关问题 更多 >