カテゴリー
【AWS Lambda使い方ガイド】Lambdaのハンドラーに課金対象外の内部タイマーをひっそりと仕込んでみる
※ 当ページには【広告/PR】を含む場合があります。
2022/04/29
AWS Lambdaへバックグラウンド処理を実装する
"use strict";
//👇タイマーIDインスタンスをグローバルで保持
let timerId;
exports.handler = async (event, context) => {
//👇最初のコール時にタイマー(10秒間隔)が処理を開始する
if (timerId == null) {
timerId = setTimeout(function tick() {
console.log('HELLO, TIMER');
timerId = setTimeout(tick, 10000);
}, 10000);
}
const response = { statusCode: 200, body: '' };
try {
response.body = 'HELLO, CLIENT';
return response;
} catch (error) {;
response.statusCode = 500;
response.body = `ERROR: ${error}`;
return response;
}
}
Lambdaの内部処理時間はホントに課金対象時間外?
...関数に対するリクエストの数とコードの実行時間に基づいて課金されます。
...呼び出しコールに応じて実行を開始するたびに、リクエストをカウントします。
実行時間は、コードの実行が開始された瞬間から、
その処理が返される、もしくは中止されるまでの時間で計算され、
値は 1 ミリ秒単位で切り上げられます。
料金は関数に割り当てたメモリ量により異なります。
AWS Lambda のリソースモデルでは、お客様が関数に必要なメモリ量を指定すると、
それに比例した CPU パワーとその他のリソースが割り当てられます。
メモリサイズが増えると、関数で利用可能な CPU にも同等の増加が発生します。
Billed Duration(課金時間)
参考サイト
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー