JenkinsからAWS Lambda関数をデプロイするにはどうすればよいですか?


7

私はジェンキンスを通じてデプロイしようとしている単純なラムダ関数を持っています-

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;
    }

私は問題なくEclipseのAWS Lambdaプラグインを介してこれをデプロイして呼び出すことができます。

私はJenkinsのAWS Lambdaプラグインを使用しており、そのドキュメントに従っています

  • 私はGitリポジトリをソースとして提供しています
  • アーティファクトの場所- src/main/java/
  • ハンドラー名- lambda.Hellolambdaはパッケージ名、Helloはクラス名です)。lambda.Hello.handleRequestlambda.Hello::handleRequestおよびその他のバリエーションも使用してみました。

Jenkinsはビルドは成功したと言っていますが、AWSコンソールでテストすると、

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

私はここでどこが間違っているのですか?AWSからテスト関数をエクスポートして解凍すると、Gitのコードが確実にデプロイされたことがわかりますが、クラスが見つかりません。

回答:


3

Lambda関数をjarファイルとして手動でデプロイしようとしたときに解決策が見つかりました。これらはステップです-

  • AWSドキュメントを使用して、Lambda関数をMavenプロジェクトとして作成します。
  • JenkinsジョブをMavenプロジェクトとして作成packageし、目標セクションで指定します。
  • Jenkins Lambdaプラグインのドキュメントに従ってデプロイtarget/your-project-1.0-SNAPSHOT.jarし、アーティファクトの場所として指定します。

これにより、MavenでLambda関数がビルドされ、AWSにデプロイされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.