Amazon web services AWS SAM:java8/gradle应用程序在部署时失败,ClassNotFound(但在本地运行良好)

Amazon web services AWS SAM:java8/gradle应用程序在部署时失败,ClassNotFound(但在本地运行良好),amazon-web-services,aws-lambda,aws-sam-cli,aws-sam,Amazon Web Services,Aws Lambda,Aws Sam Cli,Aws Sam,说明: java8应用程序在执行sam构建后在本地运行;sam本地调用…但在使用sam包部署时失败,ClassNotFound异常;sam部署 重现问题的步骤: 初始化Java8/gradle应用程序:saminit-r Java8-d gradle&cd sam应用程序 运行sam构建:sam构建——使用容器 观察函数是否在本地成功运行(如果没有上面的sam构建,则会出现相同的ClassNotFound异常):sam local invoke HelloWorldFunction——无事件 打

说明:

java8应用程序在执行
sam构建后在本地运行;sam本地调用…
但在使用
sam包部署时失败,ClassNotFound异常;sam部署

重现问题的步骤:

  • 初始化Java8/gradle应用程序:
    saminit-r Java8-d gradle&cd sam应用程序
  • 运行
    sam构建
    sam构建——使用容器
  • 观察函数是否在本地成功运行(如果没有上面的sam构建,则会出现相同的ClassNotFound异常):
    sam local invoke HelloWorldFunction——无事件
  • 打包+部署:
  • sam包--模板文件template.yaml--输出模板文件packaged.yaml--s3 bucket
    sam部署--模板文件packaged.yaml--堆栈名java8 gradle test--功能IAM--区域eu-west-2--空变更集无故障
    
  • 在AWS Lambda控制台中,找到函数
    java8 gradle test HelloWorldFunction-…
    ,添加任意测试事件并单击测试
  • 观察结果:

    执行结果:失败

    日志:

    预期结果:

    与我为此函数运行
    sam local invoke
    时相同的成功响应



    sam本地调用
    sam包
    之间似乎存在一些意想不到的差异,后者没有从
    sam构建
    中提取工件!这是通过使用
    sam package--output template file packaged.yaml--s3 bucket
    解决的,即不指定模板文件。显然,
    samlocalinvoke
    正在拾取构建的调用,但我不允许
    sam包
    调用。请参阅

    上的说明samDeploy jenkins插件是否有修复程序?
    START RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82 Version: $LATEST
    Class not found: helloworld.App: java.lang.ClassNotFoundException
    java.lang.ClassNotFoundException: helloworld.App
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
    
    END RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82
    REPORT RequestId: a5e25d74-4a0d-4763-b7a7-383aeede5c82  Duration: 58.33 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 69 MB