Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DiscordとCloudflare
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sugar-cat
February 14, 2025
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DiscordとCloudflare
sugar-cat
February 14, 2025
More Decks by sugar-cat
See All by sugar-cat
HonoとOpenTelemetryで実現するオブザーバービリティ構築
sugarcat7
0
480
ErrorTrackingとOrchestrion
sugarcat7
0
410
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.5k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.6k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
510
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.4k
GoとWASI~超入門~
sugarcat7
2
320
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
420
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
770
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
610
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Leo the Paperboy
mayatellez
7
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
We Are The Robots
honzajavorek
0
260
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
DiscordとCloudflare 湘.なんか #2 2025/2/15 @sugar235711
2 sugar cat(@sugar235711) 仕事: SRE(オブザーバビリティ、インフラ構築) 興味: セキュリティ、パフォーマンスチューニング 2年前の古い記事(あまり参考にならない) @sugar235711 @sugar-cat7
https://zenn.dev/king/articles/4201f4ee821a27
3 Bot or Activity(ボイスチャット上で動くWebアプリケーション) Discordの開発でできること(2025年2月15日現在) Overview of Activities https://discord.com/developers/docs/activities/overview Overview
of Interactions https://discord.com/developers/docs/interactions/overview ・Interaction(/ command) ・Events ・Gateway(WebSocket)/Webhook ・Embedded App ・iframeを通したメッセージング ・Unity(WebGLビルド)もいける(はず)
4 Bot or Activity(ボイスチャット上で動くWebアプリケーション) Discordの開発でできること(2025年15日現在) Overview of Activities https://discord.com/developers/docs/activities/overview Overview
of Interactions https://discord.com/developers/docs/interactions/overview ・Interaction(/ command) ・Events ・Gateway(WebSocket)/Webhook ・Embedded App ・iframeを通したメッセージング ・Unity(WebGLビルド)もいける(はず) Overview of Interactions https://discord.com/developers/docs/interactions/overview ・Interaction(/ command) ・Events ・Gateway(WebSocket)/Webhook
5 Bot or Activity(ボイスチャット上で動くWebアプリケーション) Discordの開発でできること(2025年15日現在) Overview of Activities https://discord.com/developers/docs/activities/overview Overview
of Interactions https://discord.com/developers/docs/interactions/overview ・Interaction(/ command) ・Events ・Gateway(WebSocket)/Webhook ・Embedded App ・iframeを通したメッセージング ・Unity(WebGLビルド)もいける(はず) Overview of Interactions https://discord.com/developers/docs/interactions/overview ・Interaction(/ command) ・Events ・Gateway(WebSocket)/Webhook /hogeでユーザーからのインタラクションを受けられる
6 • InteractionはInteractions Endpointを介してDiscordからのリクエ ストを受けられれば良いのでサーバレスの実行環境でOK • 公式からSDKが提供されているので、それを使えば基本的には全部実 装できる(Interaction以外も) Cloudflare ×
Discord Interactionの開発方法 https://github.com/discordjs
7 • InteractionはInteractions Endpointを介してDiscordからのリクエ ストを受けられれば良いのでサーバレスの実行環境でOK • 公式からSDKが提供されているのでそれを使えば基本的には全部実装 できる(Interaction以外も) Cloudflare ×
Discord Interactionの開発方法 https://github.com/discordjs 残念ながらCloudflare上ではdiscord.jsは動かない ※Node.js実行環境への依存・workerdでWeakRefが使えない等 ので、一般的にはInteractionだけ切り出したdiscord-interactions-jsが 使われる
8 ただDiscordの他APIの併用やWebFrameWorkへの統合を考えると もう少しリッチなライブラリが欲しくなる...(と思う) discord.jsを使わずに楽する DiscordHono ・Honoにinspireされたライブラリ ・Cloudflare Workersで動く ・Honoへmountが可能 ・Discord
API操作用のRESTClient の提供あり Discordeno ・Node.js/Deno/Bunで動く(使って いる限りはworkerdも) ・rest/gateway/botでパッケージ化 されている ・シンプルで拡張性に重きが置かれ ている(キャッシュを使用しない等) https://github.com/luisfun/discord-hono https://github.com/discordeno/discordeno Sapphire ・大規模向け(?) ・discord.jsに一部依存している ・pluginが超豊富(i18n/cli etc…) ・基本的Discord APIの操作は Wrapperが提供されている https://github.com/sapphiredev/framework
9 すぽじゅーる:https://www.vspo-schedule.com ぶいすぽっ! (VTuberグループ)の配信予定を確認できるサイト &Bot 個人開発しているサイト ユースケース (個人)
10 全体構成 サーバーサイドをCloudflareStackに (鋭意リプレイス中) ・外部向けのエンドポイントはAPI Gateway Workersに集約 ・内部のビジネスロジックはInternal Workerへ集約(Service Bindings)
・Read/Write用のWorkersを分けDB の書き込みスケールのためバッファリン グ ・Cronからの呼び出しはWorkflowsを 使用しステップに分け効率的に処理 ・BaselimeによるTracing強化 Discord Channelへの一斉配信とInteraction ユースケース (個人)
11 全体構成 サーバーサイドを CloudflareStackに ユースケース②(動画情報取得/翻訳タスク/Discordへ配信) Cloudflare Workflows 外部向けのエンドポイントは DiscordHonoを利用 Interactionのエンドポイントを
Honoへmountして一つの Gateway Workersとして運用
12 全体構成 サーバーサイドを CloudflareStackに ユースケース②(動画情報取得/翻訳タスク/Discordへ配信) Cloudflare Workflows 内部向けの WorkersではDiscordenoを利用し実装 (DiscordHonoのREST
Clientでも良かったが一部未実装の APIの有無 や利用実績等から Discordenoを利用)
13 Discord開発にもCloudflareを使おう! まとめ 宣伝 https://speakerdeck.com/sugarcat7