我想在lambda执行中将值设置为@requestId
字段,因为在源代码内部显式输出的日志不包含@requestId
字段值。
我已经读过an article,并尝试输出如下所示的日志,但是@requestId未被填写。
fmt.Print(`{"requestId":"come on!!"}`)
下面的代码都不是
fmt.Print(`{"@requestId":"come on!!"}`)
系统字段受到保护吗?
答案 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。