Lambda:从启用了 snapstart 的控制台发布的版本给出了函数初始化错误

Nav*_*mar 5 amazon-web-services aws-lambda

为现有 lambda 函数启用 snapstart 时出现以下错误

无法创建函数 funName 的版本 X。函数初始化时发生错误

云手表中没有错误日志。执行的步骤:

  1. 从常规配置中将快速启动设置为“开” 。
  2. lambda 版本 -> 发布新版本 -> 错误:无法创建函数的版本 X,初始化期间发生错误。

Jak*_*ake 2

问题在于您的某些初始化代码(静态初始化程序或构造函数)引发异常。我认为没有任何方法可以直接查看 SnapStart 遇到的错误,但您可以通过使用 lambda$LATEST版本运行代码来轻松复制它。

无法在 上启用 SnapStart $LATEST,因此冷启动 上$LATEST将执行 SnapStart 在拍摄快照之前执行的所有相同初始化代码。

在执行此操作之前,最好的做法是为 lambda 编写一些 junit 测试并在本地运行它们,看看是否发生任何异常。

否则:

  1. 转到 AWS 控制台中的 lambda 函数。
  2. 如果您还没有这样做,请上传您的 jar。暂时不要创建新版本。
  3. 在控制台中,对您的 lambda 运行测试。确保您使用的是该$LATEST版本,而不是已发布的数字版本。这将导致初始化代码在冷启动期间运行,您可以在控制台中看到错误。

就我而言,它失败了,因为我的 Lambda 执行角色没有足够的 IAM 权限。

  • 与运行“$LATEST”相比,似乎在没有配置环境变量的情况下调用版本的初始化。 (2认同)