我想为 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。