是否可以捕获执行lambda函数的startTime和endTime以及传递给它的参数? 我找不到可以配置为在lambda函数启动/终止时发送事件的任何状态更改事件配置?
一个糟糕的选择是在调用lambda时在数据库中记录参数和开始时间,并让lambda在完成之前最后一步更新完结局。这似乎容易出现故障情况,例如在更新数据库之前发生函数错误。
还有其他替代方法可以捕获此信息
答案 0 :(得分:1)
aws x-ray
在这里可能是一个很好的解决方案。易于集成和使用。您可以启用AWS控制台。
AWS X-Ray
框中选择active tracing
。在代码中没有任何配置,它将记录带有附加元数据的函数的start_time
和end_time
。您可以将其作为库集成到lambda函数中,并发送其他subsegments
,例如请求参数。请在此处查看documentation
这里是样本有效载荷;
{
"trace_id" : "1-5759e988-bd862e3fe1be46a994272793",
"id" : "defdfd9912dc5a56",
"start_time" : 1461096053.37518,
"end_time" : 1461096053.4042,
"name" : "www.example.com",
"http" : {
"request" : {
"url" : "https://www.example.com/health",
"method" : "GET",
"user_agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7",
"client_ip" : "11.0.3.111"
},
"response" : {
"status" : 200,
"content_length" : 86
}
},
"subsegments" : [
{
"id" : "53995c3f42cd8ad8",
"name" : "api.example.com",
"start_time" : 1461096053.37769,
"end_time" : 1461096053.40379,
"namespace" : "remote",
"http" : {
"request" : {
"url" : "https://api.example.com/health",
"method" : "POST",
"traced" : true
},
"response" : {
"status" : 200,
"content_length" : 861
}
}
}
]
}