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でサービス構築する方はこの本がおすすめです。IAMを使ったユーザ管理からVPCやセキュリティグループの設定、EC2・RDSなどを使った基本的なインフラ構築が丁寧に解説されています。初心者の入門本としておすすめの一冊になります。

 

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 現在はTwitterなどSNSのテキスト解析を行うソーシャルメディア分析のサーバーサイドを開発中。言語はNode.js、Kotlinを使用。






よく読まれている関連記事はこちら



コメントを残す

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