是否可以捕获 lambda 函数执行的 startTime 和 endTime 以及传递给它的参数?我找不到任何可以配置为在 lambda 函数启动/终止时发送事件的状态更改事件配置?
一个糟糕的替代方法是在调用 lambda 时在数据库中记录参数和开始时间,并让 lambda 在完成之前将 endgame 更新为最后一步。这似乎很容易出现故障情况,例如在更新数据库之前功能出错。
是否有其他替代方法来捕获此信息
是否可以捕获 lambda 函数执行的 startTime 和 endTime 以及传递给它的参数?我找不到任何可以配置为在 lambda 函数启动/终止时发送事件的状态更改事件配置?
一个糟糕的替代方法是在调用 lambda 时在数据库中记录参数和开始时间,并让 lambda 在完成之前将 endgame 更新为最后一步。这似乎很容易出现故障情况,例如在更新数据库之前功能出错。
是否有其他替代方法来捕获此信息
aws x-ray
在这里可能是一个很好的解决方案。它易于集成和使用。您可以启用它 aws 控制台。
AWS X-Ray
框中选择active tracing
。在代码中没有任何配置,它将记录start_time
和end_time
附加元数据的功能。你可以将它作为一个库集成到你的 lambda 函数中,并发送额外subsegments
的请求参数等。请在此处查看文档
这是一个示例有效载荷;
{
"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
}
}
}
]
}