Azure Functions の活用をいろいろ考えていたところで、そういえば LINE BOT API がトライアルになってました。
Azure Functions で簡単に爆速10分で作ってみました。
目次
何で作るの
BOT は本来 API Gateway + Lambda などのようなイベントベース/サーバーレス向きです。Heroku や ASP.NET Web API の例がすでにありますが、今回はAzure Functions で作ってみましょう。
デベロッパー登録
は、すでに多くの例があるので飛ばします。1万人制限のようですが、まだ登録できたので実はあまり触られてない...?
Callback URL の登録
LINE BOT には、Callback URL が必要です。これは、Azure Functions のFunction Url
にポート :443 を追加して登録すればok です。
Server IP Whitelist
Azure Functions も WebApps なので、OUTBOUND IP を取得できます。
Go to App Service Settings > Properties > OUTBOUND IP ADDRESSES
にあります。
このIP を、/24 で登録すればok です。(LINE BOT 登録は、/24~/30 で、/32 がないのがしょんぼり)
コード
あとは処理を書きましょう。
今回は、テキストにはオウム返し (Echo サーバー)、スタンプにはスタンプを返します。
実際にこれで見てみると、うまくいきましたね。
まとめ
Github の AzureFunctions サンプルにも追加しておきました。
こういう BOT は、Slack でもいいのですが、Line とは使う側のハードルが違うので用途に応じればいいと思います。
レシピや地図、電車遅延状況、画像 の検索や、Vision API を使った画像解析、マシンラーニングなどいろんなバックエンドが楽しめそうです。
他にも、AWSやAzure リソースの作成などもいけますね。
Bot 処理は、メッセージキューで負荷にも耐えれるようにしたりいろんな実装があります。が、API Gateway + Lambda や Azure Functions は、どの実装でもロジックを記述するのに有効な手段なのでぜひ試して欲しいと思います。