Slide 1

Slide 1 text

Cloudflare Workers 
 KV D 1 Cloudflare Meetup Oita Kick off!! 2 0 23 . 07 . 22 @seike 4 60 1

Slide 2

Slide 2 text

@seike 460 - - @seike 46 0
 - Fusic - / - / 
 - - Cloudflare Meet-up Fukuoka Organizer - ServerlessDays 20 23 Organizer - JAWS Festa 2023 Staff 2

Slide 3

Slide 3 text

Agenda 1 .Cloudflare Workers 2 .Cloudflare Workers KV 3 .Cloudflare D 1 4 .Workers KV D 1 5 .Workers KV D 1 3

Slide 4

Slide 4 text

01 Cloudflare Workers

Slide 5

Slide 5 text

Cloudflare Workers Workers Cloudflare 
 Web 
 Workers Cloudflare Developer Platform 5

Slide 6

Slide 6 text

02 Cloudflare Workers KV

Slide 7

Slide 7 text

Cloudflare Workers KV Key-Value 
 275 Key-Value 
 
 
 7

Slide 8

Slide 8 text

03 Cloudflare Workers KV

Slide 9

Slide 9 text

Cloudflare Workers D 1 D 1 Cloudflare D 1 SQLite SQL 
 Web 9

Slide 10

Slide 10 text

04 Workers KV D 1

Slide 11

Slide 11 text

11 GA I/F Wokers 1 10 JS - KV 1 10 1 1,000 
 Key-Value ? D 1 Read units 5 million / day Write units 100 , 00 0 / day SQL ? 10 KV 1000 ? ? ?

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

05 Workers KV D 1

Slide 14

Slide 14 text

KV 14 export const getPresentationsKV = async (KV: KVNamespace): Promise => { const startTimePut = performance.now(); for (let i = 0; i < 100; i++) { await KV.put(i.toString(), i.toString()); } const endTimePut = performance.now(); let putTime = endTimePut - startTimePut; for (let i = 0; i < 100; i++) { const value = await KV.get(i.toString()); } const endTimeGet = performance.now(); const getTime = endTimeGet - endTimePut; return 'putTime: ' + putTime + ' - getTime: ' + getTime; };

Slide 15

Slide 15 text

D 1 15 export const getPresentation = async (DB: D1Database, id: string): Promise => { await DB.prepare('DELETE FROM Presentations').run(); const startTimePut = performance.now(); for (let i = 0; i < 100; i++) { await DB.prepare('INSERT INTO Presentations (id) VALUES (?)’) .bind(i.toString()).run(); } const endTimePut = performance.now(); let putTime = endTimePut - startTimePut; for (let i = 0; i < 100; i++) { const value = await DB.prepare('SELECT id FROM Presentations WHERE id = ?') .bind(i.toString()) .first(); } const endTimeGet = performance.now(); const getTime = endTimeGet - endTimePut; const newPresentation: Presentation = { name: 'putTime: ' + putTime + ' - getTime: ' + getTime, }; return newPresentation; };

Slide 16

Slide 16 text

KV Insert putTime --------- 2 34 2 6 getTime --------- 1 22 2 KV Update putTime --------- 2 37 6 3 getTime --------- 1 25 4 D 1 putTime --------- 1 98 3 2 getTime --------- 1 53 8 5 16

Slide 17

Slide 17 text

Point KV D 1 D 1 β

Slide 18

Slide 18 text

Serverless Days Tokyo 2023 18

Slide 19

Slide 19 text

Thank You We are Hiring ! https://recruit.fusic.co.jp/