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
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
Search
KMiura
December 13, 2024
Technology
0
190
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
2024/12/13 Cloudflare Meetup Nagoya 第7回 2024年忘年LT大会
https://cfm-cts.connpass.com/event/334373/
KMiura
December 13, 2024
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
57
Pythonでルンバをハックしてみた
miura55
0
130
あなたの知らないクラフトビールの世界
miura55
0
310
Storage Browser for Amazon S3を触ってみた + α
miura55
0
180
あのボタンでつながるSORACOM
miura55
0
120
Postman Flowsで作るAPI連携LINE Bot
miura55
0
350
Lambdaと共に歩んだAWS
miura55
3
770
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
240
Other Decks in Technology
See All in Technology
ゆるSRE #11 LT
okaru
1
640
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
150
評価の納得感を2段階高める「構造化フィードバック」
aloerina
1
230
20250623 Findy Lunch LT Brown
3150
0
550
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
240
産業機械をElixirで制御する
kikuyuta
0
170
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
210
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
Web3 のリアリティ / Web3 Reality
ks91
PRO
0
100
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
410
RubyOnRailsOnDevin+α / DevinMeetupJapan#2
ginkouno
0
620
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
470
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
Code Reviewing Like a Champion
maltzj
524
40k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Typedesign – Prime Four
hannesfritz
42
2.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Raft: Consensus for Rubyists
vanstee
140
7k
Fireside Chat
paigeccino
37
3.5k
Designing for Performance
lara
609
69k
Faster Mobile Websites
deanohume
307
31k
Automating Front-end Workflow
addyosmani
1370
200k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Transcript
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋&神戸 運営
• 鯱.py運営 • Cloudflare Meetup Nagoya 運営 @k_miura_io koki.miura05
Cloudflare Builder Day2024のアップデート
Cloudflare QueuesがGA • 2022年にベータリリースされたCloudflare QueuesがGA • スループットと同時実行数の制限が上がることで、より大量のメッセージを高速にさばける ようになった https://blog.cloudflare.com/builder-day-2024-announcements/#queues-is-ga
ドキュメントを見ると…
というわけで課金!
R2のイベント通知がGA • 今年の4月にベータリリースされたR2のイベント通知がGA • R2のイベントをQueueに飛ばしてWorkerで非同期処理を実現できる • もはやS3もどき https://blog.cloudflare.com/builder-day-2024-announcements/#event- notifications-for-r2-is-now-ga
やってみた
MQ(Message Queueing) • MQはシステムで流れるメッセージを溜め込むためのキュー(Queues) • ProducerはメッセージをMQに送る(R2) • ConsumerはMQからメッセージを取り出す(Worker) MQ Producer
Consumer
Queueの設定 • 「wrangler queues create <Queue名>」と叩くだ けで作成される • Workerのwrangler.tomlにコマンド出力の中に あるConsumer側の設定をするだけでメッセー
ジを受け取ることができる
R2のイベント通知設定 • 「wrangler r2 bucket notification create <R2バケット名> --event-type <イベント
の種類> --queue <Queue名>」と叩くとイベント設定ができる • object-create:オブジェクトが新規追加されるか、更新されることで発火するイベント • object-delete:オブジェクトが削除されたことで発火するイベント
DEMO
まとめ • Wranglerを使うことで簡単にQueueのセットアップ、R2のイベント通知設 定が簡単にできた • イベントのパターンもS3よりシンプルだが、細かいフィルタリングは Worker側で実装することになりそう • 次はKVあたりでもイベント・ドリブンができると予想(というかリリースし てほしい)
今回の記事・ソースコード https://zenn.dev/kmiura55/articles/ cloudflare-r2-queue-worker https://github.com/Miura55/ cloudflare-r2-queue-sample
END