何をするものか
5分おきに任意のLambdaFunctionを起動するCloudWatch Events RuleとLambdaFunction、及びそれを作成するためのCloudFormationのTemplateです。
既にあるLambdaFunctionに対して、prewarm
というTagを値true
とともに設定すると、この仕掛けから呼び出されます。
起動するLambdaFunctionの範囲は、同じアカウントの同じRegion内です。
作り方
こちら からlambda-prewarm-executor.yamlを入手し、CloudFormationでStackを作成してください。
Parameterはデフォルトの設定のままで構いません。
以下の2点はStackのParameterになっているので、一部の振る舞いを変えられます。
- ExecutionSchedule:実行間隔。CloudWatchEvents Ruleのrate式を使えます。
- TargetLambdaTagName:ここで指定したTagの値がtrueであるLambdaを暖気します。
Stackを作成すると、以下のリソースが作成されます。
- 対象を起動するためのLambdaFunction
- 上記LambdaFunctionを定期的に起動するためのCloudWatch Events
- 必要なIAM Role、Permissionなど
使い方
暖気したいLambdaFunctionにTag prewarm
を値 true
で設定してください。
起動するときに、以下の値を引数で渡します。
{ "isPrewarm": true }
呼ばれたLambdaFunction側で、通常の呼び出しか、暖気による呼び出しかの判定に使用してください。
暖気するLambdaFunctionは非同期で起動し、エラーの判定を行いません(投げっぱなしです)。