この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
AWS Lambda のファンクションが5分まで延長可能に
re:Invent 2015 にて AWS Lambda の大幅アップデートがあり、ファンクションの実行時間が延長されるアップデートがありました。これによって、より長い処理を Lambda に任せることができるようになりました。
「ETL 処理などがとてもフィットする」と書かれていますが、最大実行時間が5分に増加されたことにより、大きいボリュームのデータを処理するアプリケーションなどに適しているというわけです。このようなユースケースはなかなか多いのではないでしょうか。
ということで、簡単ではありますが試してみました。
ファンクションの実行時間の延長
実行時間の延長は Configuration の Timeout で行います。5分まで設定できるようになっています。
ファンクションの実行時間の確認
実行時間は Context#getRemainingTimeInMillis
メソッドで確認することが出来ます。
5分まで延長させてみる
ものは試し、5分まで無理矢理延長させてみましょう。while
文で5分スリープさせてみました。5分ぴったりだとタイムアウトしてしまうので、4分50秒くらいにしています。
exports.handler = function(event, context) {
console.log('Start!');
console.log('RemainingTimeInMillis : ' + context.getRemainingTimeInMillis());
var millseconds = 290000; // 4分50秒
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + millseconds);
console.log('OK!');
};
「Save and test」を行うと実行されます。Lambda のコンソール上では下図のようにずっと待たされます。
ちなみに Lambda のコンソールでは60秒以上かかる function の結果は表示できないので、CloudWatch で見る必要があります。
CloudWatch でログを見てみましょう。5分近く延長されていることが確認できました!
まとめ
今回の大規模アップデートにより、Lambda の利用用途がぐっと広まりました。沢山使っていきましょう!