Cloudflare Workers คืออะไร เริ่มต้นเขียน Serverless Function บน Edge ได้อย่างไร

ในยุคที่ Serverless Computing กำลังเป็นที่นิยม Cloudflare Workers คือหนึ่งในแพลตฟอร์มที่ทรงพลังที่สุดสำหรับการรันโค้ด JavaScript โดยตรงบน Edge Network ของ Cloudflare ซึ่งครอบคลุมกว่า 300 ศูนย์ข้อมูลทั่วโลก ทำให้โค้ดของคุณทำงานใกล้กับผู้ใช้งานที่สุด ลด Latency ได้อย่างมีประสิทธิภาพ เหมาะอย่างยิ่งสำหรับนักพัฒนาที่ใช้ Cloud VPS ของ ผู้ให้บริการโฮสติ้ง และต้องการ Offload งานบางส่วนไปยัง Edge

Cloudflare Workers คืออะไร?

Cloudflare Workers เป็น Serverless Runtime ที่ให้คุณรันโค้ด JavaScript, TypeScript, Rust (WebAssembly) หรือ Python บน Cloudflare Edge โดยไม่ต้องจัดการ Server เอง ทุก Request ที่เข้ามาจะถูกส่งต่อไปยัง Worker ที่อยู่ใกล้กับผู้ใช้งานที่สุดก่อน

ความแตกต่างหลักจาก Serverless ทั่วไป:

  • Cold Start = 0ms — Workers ไม่มี Cold Start เพราะใช้ V8 Isolate แทน Container
  • Global Distribution — Deploy ครั้งเดียว รันได้ทั่วโลกทันที
  • ราคาถูก — Free Plan รองรับ 100,000 Requests/วัน
  • ทำงานร่วมกับ Cloudflare — ดักจับ Request ก่อนถึง Origin Server ได้

Use Cases ของ Cloudflare Workers

Cloudflare Workers เหมาะสำหรับงานหลากหลายประเภท:

  • A/B Testing — แบ่ง Traffic ให้ผู้ใช้ต่างกลุ่มได้รับ Version ที่ต่างกัน
  • Authentication & Authorization — ตรวจสอบ Token ก่อนส่งต่อไปยัง Origin
  • Request/Response Transformation — แก้ไข Header, Body หรือ URL
  • Caching Logic — สร้าง Cache Strategy แบบ Custom
  • API Routing — Route Request ไปยัง Backend ที่ถูกต้อง
  • Static Site Generation — สร้าง HTML Response โดยตรงจาก Edge
  • Bot Detection — ตรวจสอบ Bot ก่อนให้เข้าถึง Origin

เริ่มต้นใช้งาน Cloudflare Workers

การติดตั้ง Wrangler CLI

Wrangler คือ CLI Tool สำหรับพัฒนาและ Deploy Cloudflare Workers:

# ติดตั้ง Wrangler
npm install -g wrangler

# Login เข้า Cloudflare Account
wrangler login

# สร้าง Project ใหม่
wrangler init my-worker

# รัน Worker บน Local
wrangler dev

# Deploy ขึ้น Cloudflare
wrangler deploy

Worker ตัวอย่างแรก

// src/index.js
export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);
    
    // ตัวอย่าง: เพิ่ม Custom Header
    const response = await fetch(request);
    const newResponse = new Response(response.body, response);
    newResponse.headers.set('X-Powered-By', 'Cloudflare Workers');
    newResponse.headers.set('X-Served-By', 'ผู้ให้บริการโฮสติ้ง Edge');
    
    return newResponse;
  },
};

โครงสร้างของ Worker Project

โครงสร้างไฟล์มาตรฐานของ Cloudflare Workers Project:

my-worker/
├── src/
│   └── index.js        # โค้ดหลักของ Worker
├── wrangler.toml        # Config ไฟล์
├── package.json
└── README.md

ไฟล์ wrangler.toml ตัวอย่าง:

name = "my-worker"
main = "src/index.js"
compatibility_date = "2024-01-01"

# กำหนด Route ว่า Worker ทำงานกับ URL ไหน
[[routes]]
pattern = "example.com/api/*"
zone_name = "example.com"

Workers KV: การเก็บข้อมูลบน Edge

Workers KV คือ Key-Value Store ที่ทำงานร่วมกับ Workers สำหรับเก็บข้อมูลแบบ Global:

// การใช้ KV ใน Worker
export default {
  async fetch(request, env, ctx) {
    // อ่านข้อมูลจาก KV
    const value = await env.MY_KV.get('my-key');
    
    // เขียนข้อมูลลง KV
    await env.MY_KV.put('my-key', 'my-value', {
      expirationTtl: 3600 // หมดอายุใน 1 ชั่วโมง
    });
    
    return new Response(value || 'Not found');
  },
};

Cloudflare Workers กับ ผู้ให้บริการโฮสติ้ง VPS

การใช้ Cloudflare Workers ร่วมกับ Cloud VPS หรือ Cloud Hosting ของ ผู้ให้บริการโฮสติ้ง ช่วยสร้าง Architecture ที่มีประสิทธิภาพ:

  • Edge Logic + Origin Processing — Worker จัดการ Authentication และ Routing บน Edge ก่อนส่งต่อ Request ที่ผ่านการกรองแล้วมายัง VPS
  • ลด Load บน Server — Bot, Bad Request และ Invalid Token ถูก Block บน Edge ไม่มีโอกาสถึง Server
  • Cache Strategy — Worker ดึง Cache จาก KV หรือ Cache API ก่อน ไม่ต้องถึง Origin ทุก Request
  • Geo-based Routing — ส่ง Traffic ตาม Country ไปยัง Server ที่เหมาะสม

ข้อจำกัดของ Cloudflare Workers

ข้อจำกัด Free Plan Paid Plan ($5/เดือน)
Requests/วัน 100,000 10 ล้าน (รวมอยู่แล้ว)
CPU Time/Request 10ms 50ms (มาตรฐาน)
Memory 128MB 128MB
Worker Size 1MB (compressed) 5MB (compressed)
KV Storage 1GB 1GB (เพิ่มได้)
Subrequests/Request 50 1,000

สรุป

Cloudflare Workers เปิดโอกาสให้นักพัฒนาสร้าง Logic ทำงานบน Edge Network โดยไม่ต้องจัดการ Server เหมาะอย่างยิ่งสำหรับงานที่ต้องการ Low Latency และ Global Availability การผสานกับ Cloud VPS ของ ผู้ให้บริการโฮสติ้ง จะช่วยให้ระบบโดยรวมมีประสิทธิภาพสูงขึ้น ทั้งในแง่ความเร็วและความปลอดภัย