Kinesis Firehoseで送るデータをLambdaで整形するNode.jsの実装方法




どうも高妻です。Twitterでもプログラミングのことや暗号通貨のことをつぶやいているのでよかったら覗きにきてください。  

Lambdaでログ整形

Kinesis FirehoseでログをS3に転送し、そのログをLambdaで受け取りログを整形する場合を想定しています。そのときのLambdaの処理をNode.jsでどう書くか説明します。

ソースコード

上記がデータを受け取ってから返すまでの処理です。ES6で書いているのでBabelでトランスパイルしてからソースコードをアップしてください。関数名をhandlerとしていますがどんな名称を使用しても大丈夫です。

トランスパイルは下記記事を参考にしてください。

ES6をトランスパイルしてAWS Lambdaで使用する方法

データの受け取り方

第一引数のevent.recordsから取得できます。Kinesis Firehoseから受け取るデータは複数になります。

データはbase64エンコードされたものが渡されるのでこれをutf8に変換してあげないといけません。またJSONで送っている場合はJSON.parseもしないといけません。

まとめると今回のデータ変換の流れは下記です。

データの返し方

データを返すときは変更したdataを上書きし、resultキーに’Ok’という文字列を設定します。最後に受け取ったときと同じ状態に戻すためにbase64エンコードでバイナリデータに変換し、callbackの第二引数に渡してあげれば完了です。

おすすめ本

AWS初心者の方には下記の入門書がすごくわかりやすいのでおすすめです。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です