【问题标题】:How to create a custom event pattern in aws cloudwatch rule?如何在 aws cloudwatch 规则中创建自定义事件模式?
【发布时间】:2019-08-21 16:28:23
【问题描述】:

我有 CloudWatchLogs 作为源,我有一个 lambda 函数来调用作为目标的事件。

在当前方法中,每当创建日志流 get 时,都会启动 lambda。但我想要的是,在 Cloudwatch 规则 中编写自定义事件模式,这样,只有当日志消息包含异常或错误时,它才会触发 lambda。这可能吗?

目前我从 lambda 中的 CloudwatchLogs 获得的事件不包含有关日志消息的任何详细信息。因此,如何创建自定义模式以仅当日志在规则本身中包含单词 Exception 时触发 lambda?

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudwatch amazon-cloudwatchlogs


    【解决方案1】:

    【讨论】:

    • 感谢您的回复。我可以将此过滤模式设置为所有现有的日志组和创建的任何日志组吗?
    • 是的,您可以在现有日志组和目标 lambda 上创建新订阅。
    • 但我想要订阅所有现有日志组以及将要创建的日志组。这可能吗?因为到目前为止,我看到它只能针对一个日志组完成。
    • PutSubscriptionFilter API 将日志组名称作为必需参数。您需要为每个现有日志组创建一个新过滤器,并为任何新日志组创建一个新过滤器。
    • 正确..明白了!只是想确保一个过滤器不能用于整个日志组。谢谢:)
    【解决方案2】:

    您可以使用过滤模式 Exception 创建 CloudWatch Logs 触发器。这将与以下情况相匹配:

    Exception code 1

    [Exception] An error has occured

    ExceptionCode 223

    但不是:

    EXCEPTION CODE 1

    请注意,过滤器区分大小写。有关语法的更多详细信息,请参见https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html

    【讨论】:

    • 但是您将如何在 Cloudwatch 规则的事件模式中设置它?因为目前 Cloudwatch Logs 事件只有这个 { "source": [ "aws.logs" ] } 。当我在 lambda 中捕获此事件时,它不包含任何异常或与日志消息相关的详细信息。
    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2019-07-15
    • 2020-02-04
    • 2022-11-03
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多