前説
第2弾の構想で書いた通り、多重度の指定が可能なLambdaのサンプルソースです。
第1弾サンプルソースと今回のサンプルソースがあれば、大概の業務の基底処理としては耐えられるかな、、、と思います。
いつも開発する際には、多重並行処理がいらなければ第1弾サンプルソース、多重並行処理が必要であれば第2弾サンプルソースと基底を使い分けて開発を行っています。
githubにて公開
第1弾のソースに、さらに下記の機能を盛り込んだサンプルソースです。ダウンロードは下記より
https://github.com/SyoAwsBlog/ShoLambdaSample02
- ワーカー処理(疑似スレッド処理)のログレベル別管理
- 多重度の環境変数指定
- ワーカー処理(疑似スレッド処理)毎のSleep機能(環境変数指定)
設定可能な環境変数
変数名 | 変数値 |
---|---|
LogLevel | ログの出力レベルを(0~4)までの間で設定する |
LogLevelForWorker | ログの出力レベルを(0~4)までの間で設定する(ワーカー処理(疑似スレッド処理)) |
ExecutorsThreadsNum | 並行処理の多重度を数字で指定 |
ExecutorsThreadsWait | ワーカー処理(疑似スレッド処理)毎に Sleepを入れられる(ミリ秒指定) |
autoFunctionRetry | 省略したらエラー時再実行はしない。0より大きい値(数字)を設定すると、その回数、再実行を行う |
多重実行の挙動確認
Lambda環境変数:ExecutorsThreadsNumを設定して、(例えば 1 と 3 )実行すると、CloudWatchにて並列処理的な処理順序で行われている事が確認できます。
あとがき
自分が開発において良く使う基底パターンの2種(単純直列型、多重度指定つき並列処理型)を、サンプルとして紹介できました。
ここからは、お待ちかねであろう、このサンプルソースを使って、具体的なAWSサービスと連携する場合のサンプルシリーズを掲載していこうと思います。