
ที่มาภาพ: Unknown Source
วิธีตั้งค่าและใช้งาน Cloudflare Workers KV เพื่อจัดการข้อมูลคีย์‑แวลูบน Edge
⚡ สรุป 30 วิ
การจัดเก็บข้อมูลคีย์‑แวลูบน Edge ทำให้แอปพลิเคชันตอบสนองเร็วขึ้นและลดภาระที่เซิร์ฟเวอร์หลัก Cloudflare Workers KV (Key‑Value) เป็นโซลูชั่นที่ง่ายต่อการตั้งค่าและใช้งาน บทความนี้จะแสดงขั้นตอนตั้งค่าพร้…
บทนำ
การจัดเก็บข้อมูลคีย์‑แวลูบน Edge ทำให้แอปพลิเคชันตอบสนองเร็วขึ้นและลดภาระที่เซิร์ฟเวอร์หลัก Cloudflare Workers KV (Key‑Value) เป็นโซลูชั่นที่ง่ายต่อการตั้งค่าและใช้งาน บทความนี้จะแสดงขั้นตอนตั้งค่าพร้อมตัวอย่างโค้ด เพื่อให้คุณเริ่มใช้ KV ได้ทันที
Overview — What is Cloudflare Workers KV
Workers KV คือฐานข้อมูลแบบคีย์‑แวลูที่กระจายทั่วเครือข่าย Edge ของ Cloudflare ข้อมูลจะถูกทำสำเนาในหลาย ๆ จุด ทำให้การอ่านข้อมูลเกิดขึ้นใกล้ผู้ใช้ที่สุด
- **Latency ต่ำ: การดึงค่าใช้เวลาน้อยกว่า 10 ms ในหลายภูมิภาค
- **สเกลอัตโนมัติ: ไม่ต้องจัดการเซิร์ฟเวอร์หรือคลัสเตอร์
- **ต้นทุนโปร่งใส: คิดตามจำนวนคีย์และปริมาณการอ่าน/เขียน
ความพร้อมเบื้องต้น — Prerequisites
ก่อนเริ่มทำตามขั้นตอนต่อไปนี้ให้ตรวจสอบว่าได้เตรียมสิ่งเหล่านี้แล้ว
- บัญชี Cloudflare ที่มีโดเมนเชื่อมต่ออยู่
- สิทธิ์ *Workers Administrator* หรือสูงกว่าในโซนที่ต้องการ
- เครื่องมือ `wrangler` เวอร์ชันล่าสุด (npm install -g @cloudflare/wrangler)
การสร้าง KV Namespace — Create a KV Namespace
- เปิดแดชบอร์ด Cloudflare เลือกโดเมนของคุณ เมนู *Workers* *KV* กด Create namespace
- ตั้งชื่อ เช่น `MY_APP_KV` แล้วบันทึก *Namespace ID* เพื่อใช้ในขั้นตอนต่อไป
**Tip: ใช้ชื่อตรงกับฟังก์ชั่นของแอป เพื่อง่ายต่อการดูแลและสืบค้นภายหลัง
ผูก KV กับ Worker — Bind KV to a Worker
แก้ไฟล์ `wrangler.toml` ของโปรเจคให้รวมข้อมูล Namespace ID
```toml name = "my-worker" type = "javascript"
kv_namespaces = [ { binding = "MY_KV", id = "<Namespace‑ID>" } ] ```
- `binding` คือชื่อที่คุณจะอ้างถึง KV ภายในสคริปต์
- หลังบันทึกให้รัน `wrangler publish` เพื่ออัปเดต Worker
ตัวอย่างการทำงาน CRUD — Basic CRUD Operations
```js addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) })
async function handleRequest(request) { const url = new URL(request.url) const key = url.searchParams.get('key')
// ----- ขั้นตอนที่ 1: ตรวจสอบคีย์ if (!key) return new Response('Missing key', { status: 400 })
// ----- ขั้นตอนที่ 2: ดำเนินการตามเมธอด switch (request.method) { case 'GET': const value = await MY_KV.get(key) return new Response(value ?? 'Not found', { status: value ? 200 : 404 }) case 'POST': const body = await request.text() await MY_KV.put(key, body) return new Response('Saved', { status: 201 }) case 'DELETE': await MY_KV.delete(key) return new Response('Deleted', { status: 200 }) default: return new Response('Method not allowed', { status: 405 }) } } ```
- GET ดึงค่าโดยใช้ `MY_KV.get`
- POST บันทึกหรืออัปเดตค่าด้วย `MY_KV.put`
- DELETE ลบคีย์ด้วย `MY_KV.delete`
**Warning: การเขียนข้อมูลใน KV มีค่า latency สูงกว่าอ่านประมาณ 2‑3 ms ควรแยกการเขียนออกจากเส้นทางที่ต้องตอบสนองเร็ว
ตัวเลือกเพิ่มเติม — Advanced Features
- **Expiration (TTL): `await MY_KV.put(key, value, { expirationTtl: 3600 })` จะทำให้ข้อมูลหมดอายุหลัง 1 ชั่วโมง
- **Metadata: สามารถเก็บเมตาดาต้าเพื่อใช้กรองหรือจัดลำดับผลได้ (`put` รองรับ `{ metadata: {...} }`)
- **Batch Operations: `MY_KV.list({ limit: 1000 })` ใช้ดึงรายการคีย์หลายค่าในครั้งเดียว
การเปรียบเทียบ Workers KV กับ Durable Objects — KV vs DO
| คุณสมบัติ | Workers KV | Durable Objects |
|---|---|---|
| โมเดลข้อมูล | คีย์‑แวลูแบบไม่มีโครงสร้าง | อ็อบเจ็กต์ที่มี state ภายใน |
| ความเร็วอ่าน | ต่ำ (10 ms) | ใกล้เคียงกับ memory cache |
| การเขียน | สูงกว่า 50 ms | ต่ำกว่า 5 ms |
| สเกล | แบบอัตโนมัติทั่วโลก | ต้องกำหนดคลัสเตอร์ |
| ค่าบริการ | ตามปริมาณคีย์/การอ่าน‑เขียน | คิดตามจำนวนอินสแตนซ์ |
**Tip: ใช้ KV สำหรับข้อมูลที่เปลี่ยนแค่บางครั้งและต้องเข้าถึงจากหลายภูมิภาค — เช่น การตั้งค่า, แคชหน้าเว็บ หรือฟีเจอร์ A/B testing
ปัญหาที่พบบ่อย — Common Pitfalls
- **การอัปเดตสคริปต์โดยไม่รีบิลด์ KV: หลังแก้ `wrangler.toml` ต้องรัน `wrangler publish` ทุกครั้ง
- **ขนาดค่ามากเกิน 25 MB: KV จำกัดที่ 25 MB ต่อค่า หากต้องเก็บไฟล์ใหญ่ให้ใช้ Cloudflare R2 แทน
- **TTL ไม่ทำงาน: ตรวจสอบว่าเวอร์ชัน API ที่เรียกคือ `put` พร้อมอ็อบเจ็กต์ตัวเลือก
สรุป — Summary
Workers KV ให้วิธีจัดการคีย์‑แวลูบน Edge อย่างง่ายและรวดเร็ว การตั้งค่าเพียงไม่กี่ขั้นตอนสามารถทำให้แอปของคุณตอบสนองได้ดีขึ้น
- สร้าง Namespace ผูกกับ Worker ผ่าน `wrangler.toml`
- ใช้เมธอด `get`, `put`, `delete` สำหรับ CRUD พื้นฐาน
- เพิ่ม TTL หรือ Metadata เพื่อควบคุมอายุและการจัดเรียงข้อมูล
- เลือก KV เมื่อความเร็วอ่านเป็นหัวใจหลัก และใช้ DO หรือ R2 หากต้องการฟีเจอร์เฉพาะ
เริ่มทดลองตั้งค่าในโครงการของคุณวันนี้ แล้วคุณจะเห็นผลลัพธ์จาก Edge ที่เร็วกว่าเดิมทันที.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธีตั้งค่าและใช้งาน Cloudflare Workers KV เพื่อจัดการข้อมูลคีย์‑แวลูบน Edge
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 19 กรกฎาคม 2569 เวลา 17:50



