Example Flow: AWS Lambda

Flowのデプロイ先はそのままデプロイボタンを押すと、enebularが利用しているサーバーにデプロイされますが、オプションとしてAWS Lambdaにデプロイすることも可能です。このページでは、AWS LambdaにFlowをデプロイする手順を説明します。

新規Flowの作成

作成したフローをAWS Lambdaにデプロイするまでの方法です。
まずLambdaへDeployするFlowを作成しましょう(Projectは作成済みとします)。作成したProjectを選択してProjectの管理画面に移動した後、左のサイドバーの “New Flow” を押すと、Node-REDの編集画面が立ち上がります。この編集画面でデータフローを編集してFlowを作成します。

データフローの編集

データフローを作成します。動作確認のため、Lambda RequestをそのままLambda Responseに返すだけのフローを作成しましょう。

右上の赤色のDeployボタンを押してDeployした後、Deployボタンの右にある下矢印から「Export to Other Services」を選択します。

AWS Lambdaへデプロイ

「Export to Other Services」を選択すると、新しくウインドウが開いて以下のようなフォームが表示されます。

Connectionのフィールドの右側にあるNewを押して新しいConnectionを作成しましょう。

AWSのアクセスキーは、AWSLambdaFullAccess相当のポリシーで作成してください。AWS コンソールのIAMページから該当する情報をフォームにすべて書いたら、「Save」で保存します。保存が終わると、Connectionのselectボックスにて追加したConnectionが選択できるようになっているので選択します。

任意のFunction Name(ハイフンは使えません)、Timeoutに60Memory Sizeに128を入力したら、「Deploy Flow」でデプロイします。

しばらく待つと、デプロイが完了して完了画面が表示されます。

AWS Lambda コンソールにて確認

ちゃんとデプロイされているかAWSコンソールのLambdaページにて確認してみましょう。Lambdaページに先ほどデプロイの際に入力したFunction Nameがあるかと思いますのでクリックします。遷移したページの左上の「Test」というボタンでテストできます。

Eventの設定画面が出てきますが、そのまま右下の「Save and Test」をクリックします。

クリックすると、ページの下の方で処理が始まります。成功すると以下のような結果が表示されます。

Well Done!

今回はRequestをそのままResponseに返しているだけですが、実際はRequestを契機に何かしらのフローを動かします。詳しい使い方は、こちらのQiita記事をご覧下さい。