使用Bitbucket管道更新AWS Java Lambda函数时出错-Java.lang.ClassNotFoundException
我有一个基本的AWS LambdaJava函数my Function使用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
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。