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
160
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
980
Amazon Rekognitionを使ったインターホンハック
miura55
0
41
Pythonでルンバをハックしてみた
miura55
0
93
あなたの知らないクラフトビールの世界
miura55
0
280
Storage Browser for Amazon S3を触ってみた + α
miura55
0
160
あのボタンでつながるSORACOM
miura55
0
97
Postman Flowsで作るAPI連携LINE Bot
miura55
0
330
Lambdaと共に歩んだAWS
miura55
3
710
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
230
Other Decks in Technology
See All in Technology
Agile TPIを活用した品質改善事例
tomasagi
0
350
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
110
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
960
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
2k
LINE Notify互換のボットを作った話
kenichirokimura
0
180
お問い合わせ対応の改善取り組みとその進め方
masartz
1
400
Redefine_Possible
upsider_tech
0
310
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.2k
問題解決に役立つ数理工学
recruitengineers
PRO
8
2.3k
コンソールで学ぶ!AWS CodePipelineの機能とオプション
umekou
2
120
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
140
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.3k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
GitHub's CSS Performance
jonrohan
1030
460k
Unsuck your backbone
ammeep
670
57k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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