580 Views
November 18, 24
スライド概要
ユニークビジョン株式会社 テックリード。 業務でRust書きつつ、チームの生産性を向上させるような改善を推し進めています。 取るに足らないツイートが多いですが、技術的な話や最近勉強したことをつぶやきます。 第25回世界コンピュータ将棋選手権 9位。 ヤクルトスワローズ/将棋/キャンプ/DQW/謎解き/リアル脱出ゲーム
Cloudflare で実現する 実用的な LINE BOT のアーキテクチャ Cloudflare Meet-up Online!! #4 ユニークビジョン株式会社 テックリード 山本 一将(@kyamamoto9120)
コメント・質問など 頂けると嬉しいです! kyamamoto9120 ハッシュタグ #CloudflareUG_www 山本 一将 ユニークビジョン株式会社 テックリード LINE API Expert、 Rust愛好家 & チームの生産性向上推進者 2015年 世界コンピュータ将棋選手権 9位 趣味:ヤクルトスワローズ、将棋、キャンプ、DQW、旅行、謎解き Copyright ©Unique Vision Company, All Rights Reserved. 2
本発表で伝えたいこと • LINE Bot 開発の概要 • Cloudflare を使った実現方法 • LINE Bot 開発に Cloudflare を使う意義 Copyright ©Unique Vision Company, All Rights Reserved. 3
LINE Bot の流れ ① エンドユーザーが送信したメッセージは、 LINEプラットフォームに届きます。 ② LINEプラットフォームから、ボットサーバーの Webhook URLにメッセージが送信されます。 ③ REST APIを利用して、ボットサーバーから エンドユーザーにメッセージを送信します。 Copyright ©Unique Vision Company, All Rights Reserved. 4
基本的には Cloudflare Workers を使えば LINE Bot は作れます! Copyright ©Unique Vision Company, All Rights Reserved. 5
最終的なシステム構成 ① 文章を送信 ⑩ 画像を表示 ⑨ 返信を送信 Cloudflare R2 ② Webhook 受信 ⑧ 応答メッセージ送信 ⑦ (Option) R2 に画像を保存 ⑥ (Option) Workers AI Cloudflare Workers Cloudflare Workers Workers AI ④ Queue から受信 ③ Queue に送信 ⑤ (Option) LLM を使う Cloudflare Queues AI Gateway Copyright ©Unique Vision Company, All Rights Reserved. 6
① Webhook の受信
Queue を使って応答を非同期にする Copyright ©Unique Vision Company, All Rights Reserved. 8
Queue を使って応答を非同期にする ① 文章を送信 ⑩ 画像を表示 ⑨ 返信を送信 Cloudflare R2 ② Webhook 受信 ⑧ 応答メッセージ送信 ⑦ (Option) R2 に画像を保存 ⑥ (Option) Workers AI Cloudflare Workers Cloudflare Workers Workers AI ④ Queue から受信 ③ Queue に送信 ⑤ (Option) LLM を使う Cloudflare Queues AI Gateway Copyright ©Unique Vision Company, All Rights Reserved. 9
シンプルなエコーBOTの実装 fetch の中で 返信している! Copyright ©Unique Vision Company, All Rights Reserved. 10
Queue を使った実装 (1/2) fetch の中では Queue への送信だけ Copyright ©Unique Vision Company, All Rights Reserved. 11
Queue を使った実装 (2/2) queue の中で 返信する!!! Copyright ©Unique Vision Company, All Rights Reserved. 12
② メディアを含むメッセージの送信
LINE Messaging API では メッセージに添付するメディアは サーバー側が配信する必要がある! Copyright ©Unique Vision Company, All Rights Reserved. 14
メディアを含むメッセージの送信 ① 文章を送信 ⑩ 画像を表示 ⑨ 返信を送信 Cloudflare R2 ② Webhook 受信 ⑧ 応答メッセージ送信 ⑦ (Option) R2 に画像を保存 ⑥ (Option) Workers AI Cloudflare Workers Cloudflare Workers Workers AI ④ Queue から受信 ③ Queue に送信 ⑤ (Option) LLM を使う Cloudflare Queues AI Gateway Copyright ©Unique Vision Company, All Rights Reserved. 15
Cloudflare R2 でメディアを公開する ①R2.dev サブドメイン ②カスタムドメイン ③Cloudflare Workers を経由する Copyright ©Unique Vision Company, All Rights Reserved. 16
Cloudflare Workers を経由 Copyright ©Unique Vision Company, All Rights Reserved. 17
③ Cloudflare を使うメリット
Copyright ©Unique Vision Company, All Rights Reserved. 19
まとめ
まとめ • LINE Bot 開発に必要な機能は揃ってる! • 非同期処理 • メディア配信 • エグレス料金が無料なのは大きな利点! Copyright ©Unique Vision Company, All Rights Reserved. 21
ありがとうございました 質問・感想お待ちしております! Xのフォローお願いします 採用してます • 今日の発表について • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc… Copyright ©Unique Vision Company, All Rights Reserved. 22