gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:25:57 25 4
gpt4 key购买 nike

我有一个基本的AWS Lambda Java函数my-function

public class Hello implements RequestHandler<Request, Response> {
public Response handleRequest(Request request, Context context) {
String greetingString = String.format("Hello %s", request.name);
return new Response(greetingString);
}
}

该 Lambda 函数已在 AWS 中注册良好, Controller 为 com.tds.Hello 并且与 AWS API Gateway 正确关联。

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

问题是当我使用 Bitbucket Pipelines 时为了在提交代码后进行自动上传(和更新),管道运行良好,并在This tutorial (Automating AWS Lambda deployments)之后显示成功状态。但是当我在 AWS 中测试/运行该函数时,出现以下错误:

{"errorMessage":"Class not found: com.tds.Hello","errorType":"java.lang.ClassNotFoundException"}

有人遇到过这个问题吗?

最佳答案

错误发生在创建ZIP 文件并通过Bitbucket Artifacts 传递时。我避免压缩(ZIP)文件,而是直接使用 JAR 在 AWS 中上传。我更新了 bitbucket-pipelines.yml 如下:

bitbucket-pipeline.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'

bitbucket-pipeline.yml

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'

关于java - 使用 Bitbucket Pipelines 更新 AWS Java Lambda 函数时出错 - java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60235839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com