有什么方法可以为CloudWatch Logs的系统字段设置值?

时间:2019-06-21 02:58:12

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

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

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

下面的代码都不是

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

系统字段受到保护吗?

1 个答案:

答案 0 :(得分:0)

触发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。