Cloudflare で実現する実用的な LINE BOT のアーキテクチャ

1.1K Views

November 18, 24

スライド概要

profile-image

ユニークビジョン株式会社 テックリード。 業務でRust書きつつ、チームの生産性を向上させるような改善を推し進めています。 取るに足らないツイートが多いですが、技術的な話や最近勉強したことをつぶやきます。 第25回世界コンピュータ将棋選手権 9位。 ヤクルトスワローズ/将棋/キャンプ/DQW/謎解き/リアル脱出ゲーム

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Cloudflare で実現する 実用的な LINE BOT のアーキテクチャ Cloudflare Meet-up Online!! #4 ユニークビジョン株式会社 テックリード 山本 一将(@kyamamoto9120)

2.

コメント・質問など 頂けると嬉しいです! kyamamoto9120 ハッシュタグ #CloudflareUG_www 山本 一将 ユニークビジョン株式会社 テックリード LINE API Expert、 Rust愛好家 & チームの生産性向上推進者 2015年 世界コンピュータ将棋選手権 9位 趣味:ヤクルトスワローズ、将棋、キャンプ、DQW、旅行、謎解き Copyright ©Unique Vision Company, All Rights Reserved. 2

3.

本発表で伝えたいこと • LINE Bot 開発の概要 • Cloudflare を使った実現方法 • LINE Bot 開発に Cloudflare を使う意義 Copyright ©Unique Vision Company, All Rights Reserved. 3

4.

LINE Bot の流れ ① エンドユーザーが送信したメッセージは、 LINEプラットフォームに届きます。 ② LINEプラットフォームから、ボットサーバーの Webhook URLにメッセージが送信されます。 ③ REST APIを利用して、ボットサーバーから エンドユーザーにメッセージを送信します。 Copyright ©Unique Vision Company, All Rights Reserved. 4

5.

基本的には Cloudflare Workers を使えば LINE Bot は作れます! Copyright ©Unique Vision Company, All Rights Reserved. 5

6.

最終的なシステム構成 ① 文章を送信 ⑩ 画像を表示 ⑨ 返信を送信 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

7.

① Webhook の受信

8.

Queue を使って応答を非同期にする Copyright ©Unique Vision Company, All Rights Reserved. 8

9.

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

10.

シンプルなエコーBOTの実装 fetch の中で 返信している! Copyright ©Unique Vision Company, All Rights Reserved. 10

11.

Queue を使った実装 (1/2) fetch の中では Queue への送信だけ Copyright ©Unique Vision Company, All Rights Reserved. 11

12.

Queue を使った実装 (2/2) queue の中で 返信する!!! Copyright ©Unique Vision Company, All Rights Reserved. 12

13.

② メディアを含むメッセージの送信

14.

LINE Messaging API では メッセージに添付するメディアは サーバー側が配信する必要がある! Copyright ©Unique Vision Company, All Rights Reserved. 14

15.

メディアを含むメッセージの送信 ① 文章を送信 ⑩ 画像を表示 ⑨ 返信を送信 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

16.

Cloudflare R2 でメディアを公開する ①R2.dev サブドメイン ②カスタムドメイン ③Cloudflare Workers を経由する Copyright ©Unique Vision Company, All Rights Reserved. 16

17.

Cloudflare Workers を経由 Copyright ©Unique Vision Company, All Rights Reserved. 17

18.

③ Cloudflare を使うメリット

19.

Copyright ©Unique Vision Company, All Rights Reserved. 19

20.

まとめ

21.

まとめ • LINE Bot 開発に必要な機能は揃ってる! • 非同期処理 • メディア配信 • エグレス料金が無料なのは大きな利点! Copyright ©Unique Vision Company, All Rights Reserved. 21

22.

ありがとうございました 質問・感想お待ちしております! Xのフォローお願いします 採用してます • 今日の発表について • ユニークビジョン • Rustについて • コードレビューの工夫 • 開発リーダーのお悩み • 東京ヤクルトスワローズ etc… Copyright ©Unique Vision Company, All Rights Reserved. 22