使用Bitbucket管道更新AWS Java Lambda函数时出错-Java.lang.ClassNotFoundException

使用Bitbucket管道更新AWS Java Lambda函数时出错-Java.lang.ClassNotFoundException,java,amazon-web-services,aws-lambda,bitbucket-pipelines,Java,Amazon Web Services,Aws Lambda,Bitbucket Pipelines,我有一个基本的AWS LambdaJava函数my Function public类Hello实现RequestHandler{ 公共响应handleRequest(请求、请求、上下文){ String greetingString=String.format(“Hello%s”,request.name); 返回新的响应(greetingString); } } Lambda函数在AWS中注册好了,控制器是com.tds.Hello,并且与AWS API网关正确相关 最终的JAR是通过Mav

我有一个基本的AWS LambdaJava函数my Function

public类Hello实现RequestHandler{
公共响应handleRequest(请求、请求、上下文){
String greetingString=String.format(“Hello%s”,request.name);
返回新的响应(greetingString);
}
}
Lambda函数在AWS中注册好了,控制器是
com.tds.Hello
,并且与AWS API网关正确相关

最终的JAR是通过Maven构建的,没有任何问题。当我直接在AWS中上传JAR时,该功能运行良好

问题是,当我在提交代码后使用以执行自动上载(和更新)时,管道运行良好,状态如下success,但当我在AWS中测试/运行函数时,我得到以下错误:

{“errorMessage”:“未找到类:com.tds.Hello”,“errorType”:“java.lang.ClassNotFoundException”}


有人遇到过这个问题吗?

错误发生在创建ZIP文件并通过Bitbucket工件时。我避免压缩(ZIP)文件,而是直接使用JAR在AWS中上传。我更新了
比特桶管道.yml
,如下所示:

旧的
比特桶管道.yml

pipelines:
  default:
    - step:
        name: Build and package
        script:
          - apt-get update && apt-get install -y zip
          - zip my-function.zip target/my-function.jar 
          - pipe: atlassian/aws-lambda-deploy:0.3.0
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_REGION
              FUNCTION_NAME: 'my-function'
              COMMAND: 'update'
              ZIP_FILE: 'my-function.zip'
pipelines:
  default:
    - step:
        name: Build and package
        script:
          - pipe: atlassian/aws-lambda-deploy:0.5.0
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_REGION
              FUNCTION_NAME: 'my-function'
              COMMAND: 'update'
              ZIP_FILE: 'target/my-function.jar'
新建
比特桶管道.yml

pipelines:
  default:
    - step:
        name: Build and package
        script:
          - apt-get update && apt-get install -y zip
          - zip my-function.zip target/my-function.jar 
          - pipe: atlassian/aws-lambda-deploy:0.3.0
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_REGION
              FUNCTION_NAME: 'my-function'
              COMMAND: 'update'
              ZIP_FILE: 'my-function.zip'
pipelines:
  default:
    - step:
        name: Build and package
        script:
          - pipe: atlassian/aws-lambda-deploy:0.5.0
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_REGION
              FUNCTION_NAME: 'my-function'
              COMMAND: 'update'
              ZIP_FILE: 'target/my-function.jar'

如何在Bitbucket管道中使用Maven构建JAR文件?听起来这个过程是错误的,或者你在Bitbucket管道中引用了一个错误的工件文件..我在本地构建了JAR,然后将其推送到Bitbucket,因此管道日志正确显示了创建和上载zip时的结果,让我尝试在管道中构建JAR。