Làm cách nào tôi có thể triển khai chức năng AWS Lambda từ Jenkins?


7

Tôi có một chức năng Lambda đơn giản mà tôi đang cố gắng triển khai thông qua Jenkins -

public String handleRequest(String input, Context context) {
        String output = "";
        if (input.isEmpty()) {
            output = "No input provided";
        } else {
            output = "Hello, " + input + "! Checking invocation - 1";
        }
        return output;
    }

Tôi có thể triển khai và gọi nó thông qua plugin AWS Lambda của Eclipse mà không gặp vấn đề gì.

Tôi đang sử dụng plugin AWS Lambda cho Jenkins và làm theo tài liệu của họ .

  • Tôi đang cung cấp kho Git của tôi làm nguồn.
  • Vị trí tạo tác - src/main/java/
  • Tên Handler - lambda.Hello( lambda là tên gói và Hello là tên lớp). Tôi cũng đã cố gắng sử dụng lambda.Hello.handleRequest, lambda.Hello::handleRequestvà các biến thể khác.

Jenkins nói rằng quá trình xây dựng đã thành công nhưng khi tôi thử nghiệm nó trên bảng điều khiển AWS, tôi nhận được -

"errorMessage": "Class not found: lambda.Hello",
  "errorType": "class java.lang.ClassNotFoundException"

Tôi đang sai ở đâu đây? Khi tôi xuất hàm kiểm tra từ AWS và giải nén nó, tôi có thể thấy mã đó trên Git chắc chắn đã được triển khai nhưng nó không thể tìm thấy lớp.

Câu trả lời:


3

Tôi đã tìm thấy giải pháp trong khi cố gắng triển khai thủ công hàm Lambda dưới dạng tệp jar. Đây là các bước -

  • Tạo chức năng Lambda của bạn như một dự án Maven bằng tài liệu AWS .
  • Tạo công việc Jenkins của bạn như một dự án Maven và chỉ định packagetrong phần mục tiêu.
  • Thực hiện theo tài liệu plugin Jenkins Lambda để triển khai và chỉ định target/your-project-1.0-SNAPSHOT.jarlà vị trí Artifact.

Điều này sẽ xây dựng chức năng Lambda của bạn với Maven và sau đó triển khai nó lên AWS.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.