3つになりました; よくある質問 – AWS Lambda | AWS – Amazon Web Services; AWS Black Belt Techシリーズ AWS Lambda – SlideShare; Lambda使用上の注意点、向いていない用途; AWS Lambdaの処理性能を言語毎に測ってみた import software.amazon.awssdk.services.s3.model.PutObjectRequest; https://dev.classmethod.jp/articles/report-best-practive-for-java-on-lambda/, re:Invent 2019でのセッション資料 不思議に思って、CloudWatch Logsのログを確認してみると・・・, 最初のBefore waitの後にAfter waitがなく、Lambdaの処理がSTARTした後に再度Before waitが呼ばれ、After waitした後に、4秒ほど待ってから、ハンドラ処理が実行されてCalledが呼ばれていました。 if (count == 1) { System.out.println(result); AWS Lambdaで動作するJavaは初回が遅いですが、速くする方法がないか調べました。 https://youtu.be/ddg1u5HLwg8, 他に見つけたブログ Why not register and get more from Qiita? package helloworld; ハンドラの実装には AWS Lambda Java コアライブラリ (aws-lambda-java-core) に用意されている定義済みインターフェイス RequestHandler を使用する private static int count = 1; import com.amazonaws.services.lambda.runtime.RequestHandler; return null; コンストラクタが実行され、10秒sleepの途中でタイムアウトして強制的に処理が止められ、インスタンス生成を諦めた(プロセスごと破棄された?) この辺りはもう少し追試験をしてみれば解析できそうですが、長くなるので、今回はこの辺りまでにしたいと思います。, cero-tさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog count++; その後、改めてコンストラクタの処理がタイムアウト関係なく実行されたうえで、AWS Lambdaの内部処理と、ハンドラ処理が行われ、すべての処理が課金対象となる、ということころでしょうか。, 今度はSTARTの前に、きちんとBefore waitもAfter waitも出力され、ハンドラ処理のみが課金対象となっていました。, 1. Lambdaは一定時間実行されないと、アンロードされてしまうので、たまーにしか実行しないようなケースでは毎回遅い初回実行になってしまいます。, 特にAPI Gatewayを通してLambdaを実行する場合はタイムアウトが上限30秒なので、PhantomJs等、重い処理が入っている場合は、初期化や処理中にタイムアウトしてしまいます。, Lambda関数のトリガにCloudWatchイベントスケジュールで五分毎の実行を入れるだけ!, 4.ルール名を適当に入れて、スケジュール式を「rate(5 minute)」を指定して、送信ボタン. } private static S3Client s3 = S3Client.builder().region(Region.AP_NORTHEAST_1).build(); public Object handleRequest(final Object input, final Context context) { RequestBody.fromString("contents")); import software.amazon.awssdk.core.sync.RequestBody; RequestBody.fromString("contents")); Help us understand the problem. 2〜4の間が課金対象となり、15秒弱となった。 6. System.out.println(result); }, どうも、Javaのクラスローダーは初めてクラスが呼ばれたタイミングでクラスを読み込むようで、クラスの初期ロードに時間がかかるらしいです。 }, 検証5で早くなったので、Provisioned Concurrencyも組み合わせたら、1回目から速くなるのか?!, ソース全体 public class TestTarget0429 implements RequestHandler