Slide 1

Slide 1 text

Cloudflare R2をトリガーにCloudflare Workersを動かしてみた KMiura(@k_miura_io)

Slide 2

Slide 2 text

自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋&神戸 運営 • 鯱.py運営 • Cloudflare Meetup Nagoya 運営 @k_miura_io koki.miura05

Slide 3

Slide 3 text

Cloudflare Builder Day2024のアップデート

Slide 4

Slide 4 text

Cloudflare QueuesがGA • 2022年にベータリリースされたCloudflare QueuesがGA • スループットと同時実行数の制限が上がることで、より大量のメッセージを高速にさばける ようになった https://blog.cloudflare.com/builder-day-2024-announcements/#queues-is-ga

Slide 5

Slide 5 text

ドキュメントを見ると…

Slide 6

Slide 6 text

というわけで課金!

Slide 7

Slide 7 text

R2のイベント通知がGA • 今年の4月にベータリリースされたR2のイベント通知がGA • R2のイベントをQueueに飛ばしてWorkerで非同期処理を実現できる • もはやS3もどき https://blog.cloudflare.com/builder-day-2024-announcements/#event- notifications-for-r2-is-now-ga

Slide 8

Slide 8 text

やってみた

Slide 9

Slide 9 text

MQ(Message Queueing) • MQはシステムで流れるメッセージを溜め込むためのキュー(Queues) • ProducerはメッセージをMQに送る(R2) • ConsumerはMQからメッセージを取り出す(Worker) MQ Producer Consumer

Slide 10

Slide 10 text

Queueの設定 • 「wrangler queues create 」と叩くだ けで作成される • Workerのwrangler.tomlにコマンド出力の中に あるConsumer側の設定をするだけでメッセー ジを受け取ることができる

Slide 11

Slide 11 text

R2のイベント通知設定 • 「wrangler r2 bucket notification create --event-type <イベント の種類> --queue 」と叩くとイベント設定ができる • object-create:オブジェクトが新規追加されるか、更新されることで発火するイベント • object-delete:オブジェクトが削除されたことで発火するイベント

Slide 12

Slide 12 text

DEMO

Slide 13

Slide 13 text

まとめ • Wranglerを使うことで簡単にQueueのセットアップ、R2のイベント通知設 定が簡単にできた • イベントのパターンもS3よりシンプルだが、細かいフィルタリングは Worker側で実装することになりそう • 次はKVあたりでもイベント・ドリブンができると予想(というかリリースし てほしい)

Slide 14

Slide 14 text

今回の記事・ソースコード https://zenn.dev/kmiura55/articles/ cloudflare-r2-queue-worker https://github.com/Miura55/ cloudflare-r2-queue-sample

Slide 15

Slide 15 text

END