1

是否可以捕获 lambda 函数执行的 startTime 和 endTime 以及传递给它的参数?我找不到任何可以配置为在 lambda 函数启动/终止时发送事件的状态更改事件配置?

一个糟糕的替代方法是在调用 lambda 时在数据库中记录参数和开始时间,并让 lambda 在完成之前将 endgame 更新为最后一步。这似乎很容易出现故障情况,例如在更新数据库之前功能出错。

是否有其他替代方法来捕获此信息

4

1 回答 1

1

aws x-ray在这里可能是一个很好的解决方案。它易于集成和使用。您可以启用它 aws 控制台。

  • 转到您的 lambda 函数/配置选项卡
  • 向下滚动并在AWS X-Ray框中选择active tracing

在代码中没有任何配置,它将记录start_timeend_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
        }
      }
    }
  ]
}
于 2020-05-22T00:33:17.493 回答