有什么方法可以为云观察日志的系统字段设置值?



我想为 lambda 执行中@requestId的字段设置值,因为在源代码中显式输出的日志不包含@requestId字段值。
我读过一篇文章并尝试输出如下所示的日志,但@requestId没有被填充。

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

下面的代码都不是。

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

系统字段是否受保护?

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

从 Go 中的 AWS Lambda Function Handler - AWS Lambda:

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

从 Go 中的 AWS Lambda 上下文对象 - AWS Lambda:

上下文属性

AwsRequestID– 调用请求的标识符。

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

最新更新