【问题标题】:Is there any ways to set values to system fields of CloudWatch Logs?有没有办法为 CloudWatch Logs 的系统字段设置值?
【发布时间】:2019-11-03 21:11:17
【问题描述】:

我想在 lambda 执行中为字段 @requestId 设置值,因为在源代码中显式输出的日志不包含 @requestId 字段值。
我已阅读 an article 并尝试输出如下日志,但未填写 @requestId。

fmt.Print(`{"requestId":"come on!!"}`)

下面的代码都没有。

fmt.Print(`{"@requestId":"come on!!"}`)

系统字段是否受到保护?

【问题讨论】:

    标签: amazon-web-services go amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights


    【解决方案1】:

    当触发 AWS Lambda 函数时,会将 context 元素传递给函数。

    来自AWS Lambda Function Handler in Go - AWS Lambda

    func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
            return fmt.Sprintf("Hello %s!", name.Name ), nil
    }
    

    来自AWS Lambda Context Object in Go - AWS Lambda

    上下文属性

    AwsRequestID – 调用请求的标识符。

    因此,您可以从 context 检索请求 ID。然后,您的函数打印的任何内容都将被捕获在 CloudWatch Logs 中。因此,请在您的打印声明中包含请求 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2023-04-10
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      相关资源
      最近更新 更多