
ที่มาภาพ: Unknown Source
วิธี Deploy แอป Serverless บน Cloudflare Workers ด้วย Wrangler
⚡ สรุป 30 วิ
การ Deploy แอป Serverless บน Cloudflare Workers ไม่ต้องจัดสรรเซิร์ฟเวอร์เต็มรูปแบบ เพียงเขียนโค้ด JavaScript/TypeScript แล้วส่งไปที่ Edge Network ของ Cloudflare ได้ทันที บทความนี้จะอธิบายขั้นตอนโดยใช้…
ภาพรวม — Overview
การ Deploy แอป Serverless บน Cloudflare Workers ไม่ต้องจัดสรรเซิร์ฟเวอร์เต็มรูปแบบ เพียงเขียนโค้ด JavaScript/TypeScript แล้วส่งไปที่ Edge Network ของ Cloudflare ได้ทันที บทความนี้จะอธิบายขั้นตอนโดยใช้ Wrangler ซึ่งเป็น CLI อย่างเป็นทางการของ Workers
- ทำให้แอปพร้อมทำงานทั่วโลกในไม่กี่วินาที
- ลดภาระการดูแลโครงสร้างพื้นฐาน
- รองรับฟีเจอร์เช่น KV, Durable Objects และ Cron Triggers
สิ่งที่ต้องเตรียม — Prerequisites
ก่อนเริ่ม ควรตรวจสอบว่ามีเครื่องมือและบัญชีพร้อมหรือยัง
- มี บัญชี Cloudflare (สมัครฟรีได้)
- ติดตั้ง Node.js ≥ 16 บนเครื่องของคุณ
- เปิดใช้งาน API Token ที่มีสิทธิ์ `Account Settings > API Tokens > Edit Cloudflare Workers`
- ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตที่เสถียร
**Tip: ใช้ token แบบ “Edit Cloudflare Workers” แทนการใช้ Global API Key เพื่อความปลอดภัยสูงสุด
ติดตั้ง Wrangler — Install Wrangler
Wrangler มีสองเวอร์ชันหลัก คือ v1 (Legacy) และ v2 (Current) เราแนะนำให้ใช้ v2 เนื่องจากรองรับ TypeScript โดยตรงและมีคำสั่งที่เรียบง่าย
| เวอร์ชัน | การติดตั้ง | รองรับ TS |
|---|---|---|
| Wrangler v1 | `npm i -g @cloudflare/wrangler` | ไม่ |
| Wrangler v2 | `npm i -g wrangler@latest` | ใช่ |
- เปิดเทอร์มินัลแล้วรันคำสั่งข้างบน
- ตรวจสอบเวอร์ชันด้วย `wrangler --version`
- หากเจอข้อผิดพลาดเกี่ยวกับสิทธิ์ ให้เพิ่ม `sudo` (Linux/macOS) หรือเปิด PowerShell ด้วย Administrator (Windows)
เริ่มต้นโปรเจกต์ใหม่ — Initialize Project
Wrangler สามารถสร้างโครงสร้างพื้นฐานของ Workers ได้โดยอัตโนมัติ
- สร้างไดเรกทอรีใหม่และเข้าไปในนั้น `mkdir my-worker && cd my-worker`
- รัน `wrangler init --site` เพื่อสร้างแอปแบบ Static Site (หรือ `wrangler init` สำหรับ API‑only)
- เลือก TypeScript หากต้องการใช้ประโยชน์จากการตรวจสอบประเภท
ไฟล์สำคัญที่ถูกสร้างขึ้น ได้แก่ `src/index.ts`, `wrangler.toml`, และ `package.json`
ปรับแต่งโค้ด Workers — Write Your Worker
โค้ดใน `src/index.ts` จะทำหน้าที่เป็นฟังก์ชัน entry point ของ Cloudflare
```ts export default { async fetch(request: Request) { // ตัวอย่างตอบกลับแบบ JSON const data = { message: "Hello from Cloudflare Workers!" }; return new Response(JSON.stringify(data), { headers: { "content-typeapplication/json" }, }); }, }; ```
- ใช้ fetch API เพื่อเรียกบริการภายนอกได้โดยตรง
- สามารถเข้าถึง KV, Durable Objects หรือ Cron Trigger ผ่าน `env` ที่กำหนดใน `wrangler.toml`
**Warning: Workers มีขนาดโค้ดจำกัด 1 MB (รวม dependencies) ควรลบแพคเกจที่ไม่ได้ใช้
ตั้งค่าไฟล์ wrangler.toml — Configure wrangler.toml
ไฟล์นี้เป็นหัวใจของการ Deploy ระบุข้อมูลสำคัญเช่น account ID, route และ binding
```toml name = "my-worker" account_id = "YOUR_ACCOUNT_ID" workers_dev = true # ใช้ URL workers.dev ชั่วคราว compatibility_date = "2024-07-01"
[env.production] route = "https://example.com/*" zone_id = "YOUR_ZONE_ID" ```
- `workers_dev: true` ทำให้สามารถทดสอบได้โดยไม่ต้องตั้งค่า DNS
- เพิ่ม `[kv_namespaces]`, `[durable_objects]` หรือ `[triggers]` หากใช้ฟีเจอร์เหล่านั้น
Deploy ไปยัง Cloudflare — Deploy
เมื่อโค้ดพร้อมแล้ว เพียงสั่งคำสั่งเดียวก็จะอัปโหลดไปยัง Edge Network
- รัน `wrangler publish` สำหรับการ Deploy แบบ production (ตามค่าใน `wrangler.toml`)
- หากต้องการ Deploy ไปที่ workers.dev ให้ใช้ `wrangler dev` เพื่อรันทดลองบนเครื่องของคุณก่อน
ขั้นตอนสำคัญหลัง Deploy
- ตรวจสอบ URL ที่แสดงในเทอร์มินัลว่าตรงกับโดเมนหรือ workers.dev หรือไม่
- ใช้ `curl -I <url>` เพื่อตรวจสอบ Header เช่น `CF-Ray` ซึ่งบ่งชี้ว่าอยู่บน Cloudflare Edge
ตรวจสอบและ Debug — Verify & Debug
การตรวจสอบหลัง Deploy ช่วยให้แน่ใจว่าฟังก์ชันทำงานตามคาด
- เปิด Dashboard > Workers แล้วคลิกชื่อ Worker เพื่อดู logs แบบเรียลไทม์
- ใช้ `wrangler tail` เพื่อติดตาม log จาก CLI (ต้องเปิด Logpush ใน Settings)
- หากเจอ error 500 ให้ตรวจสอบว่าโค้ดทำงานในสภาพแวดล้อม Edge หรือมีการใช้ API ที่ไม่อนุญาต
**Tip: เพิ่ม `console.log()` ภายในฟังก์ชัน fetch เพื่อดูค่าที่ส่งเข้า‑ออกได้ง่าย
เคล็ดลับและข้อควรระวัง — Tips & Common Issues
- จัดการ Dependency ขนาดใหญ่
- ใช้ `npm prune --production` ก่อน Deploy เพื่อลบ devDependencies
- อัปเดต Compatibility Date
- ค่าที่เก่าอาจทำให้บาง API ไม่ทำงาน ตรวจสอบที่ <https://developers.cloudflare.com/workers/platform/compatibility-dates/> ทุกครั้งที่อัปเกรด Wrangler
- จำกัดการเรียก API ภายนอก
- Workers มีเวลา execution สูงสุด 50 ms สำหรับโซน free tier ควรใช้ CDN หรือ Cache เพื่อลด latency
สรุป — Summary
Deploy แอป Serverless บน Cloudflare Workers ด้วย Wrangler เป็นกระบวนการที่รวดเร็วและปลอดภัย หากทำตามขั้นตอนต่อไปนี้จะช่วยให้คุณได้ผลลัพธ์ที่มั่นคง
- เตรียมบัญชี Cloudflare, Node.js และ API Token
- ติดตั้ง Wrangler เวอร์ชันล่าสุด (`npm i -g wrangler@latest`)
- ใช้ `wrangler init` สร้างโครงสร้างโปรเจกต์และเขียนโค้ดใน `src/index.ts`
- ปรับไฟล์ `wrangler.toml` ให้ตรงกับ environment ที่ต้องการ
- Deploy ด้วย `wrangler publish` หรือทดสอบด้วย `wrangler dev`
ทำตามขั้นตอนเหล่านี้ คุณจะสามารถส่งแอป Serverless ของคุณสู่ Edge Network ได้ในไม่กี่นาที พร้อมรับประโยชน์จากความเร็วและความปลอดภัยของ Cloudflare.
แชร์บทความนี้:
ชอบบทความแบบนี้?
สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม
แหล่งข่าวต้นฉบับ
- ชื่อต้นฉบับ
- วิธี Deploy แอป Serverless บน Cloudflare Workers ด้วย Wrangler
- ผู้เขียน
- กองบรรณาธิการ Thai Tech News
- แหล่ง
- บทความต้นฉบับ Thai Tech News · ช่วยร่างด้วย AI, เรียบเรียง/ตรวจสอบโดยกองบรรณาธิการ
- วันที่เผยแพร่
- 17 กรกฎาคม 2569 เวลา 10:50



