AWS Lambda が .Net Core をサポートしたと言うけど実際に書くときに引数ってどうするんだろうって思ったので調べてみた。
Lambda のトリガーには CloudWatch を指定できて、 CloudWatch のイベントからルールを設定することでバッチ処理のようなことをさせることができます。
CloudWatch のイベントルール
ここで気になったのが、入力を 定数 (JSON テキスト)
にした場合、ソースコードで引数部分をどう書けばいいのかということでした。
イベントごとの書き方の違い
一致したイベント
一致したイベントの場合は CloudWatchLogsEvent
で大丈夫です。
public string FunctionHandler(CloudWatchLogsEvent logEvent) { }
定数 (JSON テキスト)
定数 (JSON テキスト) の場合、 JSON テキストは
{ "mode": "test" }
としたとき、 一致したイベント
と同じ書き方ではエラーになります。
Object reference not set to an instance of an object.: NullReferenceException
その場合は自分で型を定義してあげることで無事Lambdaを起動することができます。
public class InputParameter { public string mode { get; set; } } public string FunctionHandler(InputParameter params) { Console.WriteLine("mode : {0}", params.mode); }