[英]Error when update AWS Java Lambda Function using Bitbucket Pipelines - java.lang.ClassNotFoundException
我有一個基本的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中注冊良好,控制器為com.tds.Hello
,正確關聯AWS API Gateway 。
最終的JAR是通過 Maven 構建的,沒有問題。 當我直接在AWS 中上傳 JAR 時,該功能運行良好。
問題是,當我使用Bitbucket Pipelines在提交代碼后進行自動上傳(和更新)時,管道運行良好,並按照本教程(自動化 AWS Lambda 部署)成功狀態運行,但是當我在 AWS 中測試/運行該函數時,我得到以下錯誤:
{"errorMessage":"找不到類: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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.