LoginSignup
4
2

More than 5 years have passed since last update.

Node.jsとAWSを使って画像検索 BOTを作ってみた~後編~

Last updated at Posted at 2018-09-24

はじめに

Node.jsとAWSを使って画像検索 BOTを作ってみた~前編~ の続きの記事です。
今回はインフラ寄りの話題となります。

AWS lambda へ資材アップロード

AWS アカウントは既に持っている前提で話を進めます。

まず、資材を zip で固めます。
今、このような構成になっていると思います。

line_bot_test
  ├─ index.js
  └─ node_modules/

line_bot_test 内で以下のように zip コマンドを実行してください。

zip -r line_bot_test.zip .

【注意】
zipで中身だけ固めるようにしないと、アップロード時にエラーとなります。
https://qiita.com/TLamp/items/29658cc8fdc1d73e3f49

lambda 関数作成

AWS Lambda に行き、「関数の作成」を選択します。
lambda1.PNG

「一から作成」を選択し、関数名、ランタイムを入力します。
今回は関数名は line_bot_test としました。
lambda2.PNG

ロールは「カスタムロールの作成」を選択すると、このような IAM ロール作成画面に飛ばされると思います。
lambda3.PNG

今回はロール名も特にいじらず lambda_basic_execution のまま「許可」をクリックします。
そうすると元の lambda 画面に戻るので、「関数の作成」をクリックします。

【ロールに関する補足】

  • 既にロールを作成している場合はそれを流用してもOKです。
  • 今回作成したロールは、 CloudWatch に関数の実行ログを残すための必要最低限の権限となっています。

画面遷移後、各種設定していきます。

Designer

トリガーの追加で、API Gateway をクリックします。
lambda4.PNG

トリガーの設定

こんな感じで設定して「追加」をクリック。
lambda5.PNG

処理が終わると API エンドポイントが表示されます。この後使うので控えておきます。
Inkedlambda8_LI.jpg

終わったら Designer の「line_bot_test」アイコンをクリックし、関数の設定を行います。

関数コード

  • コードエントリタイプ
    .zipファイルをアップロード を選択し、先程固めた zip ファイルを選択

  • ランタイム
    今回は Node.js 6.10

  • ハンドラ
    メインスクリプトファイル名.main処理の関数 のように指定します。
    今回は index.js 内で exports.handler としているので index.handler となります。

lambda6.PNG

環境変数

ここで設定した環境変数は、lambda 関数内で process.env['環境変数名'] でアクセスできます。
今回は ch_access_token、ch_secret、reply_url の3つを設定します。

  • ch_access_token と ch_secret
    LINE チャンネルの「アクセストークン」、「Channel Secret」をそれぞれ設定します。
    こちらからログインして確認オナシャス。
    https://developers.line.me/console

  • reply_url
    https://api.line.me/v2/bot/message/reply と設定してください。

lambda7.PNG

基本設定

適当にメモリ 256 MB、タイムアウト1分に設定しました。
lambda10.PNG

ここまでやったら右上の「保存」をクリックします。

LINE チャンネル設定

Line developers の LINE チャンネル設定の「Webhook URL」に API エンドポイントを設定します。

接続確認をすると、なんかエラーっぽいのが出ますがちゃんと動作しますので大丈夫です。
lambda9.PNG

以上で完成です!
LINE で友達追加して、いろいろ検索してみてください!
前編の最初の gif のような動作が確認できると思われます。

最後に

軽い気持ちで始めたんですが、なかなか満足の行くものが出来たかなと思ってます。

注意事項を挙げるとするとこの辺かなぁ。

  • 画像検索はセーフサーチオフになっているので、変な言葉を検索しないほうが良いと思います。
  • CloudWatch に検索ログが残るので、他の人がログを見るかも知れない環境では気をつけてください。

紳士な方々には全く問題ないと思いますが、念のため。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2