วิธี Deploy แอป Serverless บน Cloudflare Workers ด้วย Wrangler

ที่มาภาพ: 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

Related

บทความที่เกี่ยวข้อง

วิธีตั้งค่า Zsh พร้อม Oh My Zsh บน macOS เพื่อเพิ่มประสิทธิภาพการทำงานในเทอร์มินัลอย่างมืออาชีพGrowth
16 กรกฎาคม 2569 เวลา 20:30

วิธีตั้งค่า Zsh พร้อม Oh My Zsh บน macOS เพื่อเพิ่มประสิทธิภาพการทำงานในเทอร์มินัลอย่างมืออาชีพ

การเปลี่ยนจาก Bash ไปใช้ **Zsh** พร้อมกับ **Oh My Zsh** บน macOS ช่วยให้เทอร์มินัลทำงานเร็วขึ้นและมีฟีเจอร์อัตโนมัติที่มืออาชีพต้องการ เริ่มต้นด้วยขั้นตอนง่าย ๆ แล้วคุณจะได้สภาพแวดล้อมเชลล์ที่ตอบสนองต…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีตั้งค่า Pre‑commit Hook เพื่อตรวจจับ Secrets ด้วย TruffleHogGrowth
16 กรกฎาคม 2569 เวลา 19:00

วิธีตั้งค่า Pre‑commit Hook เพื่อตรวจจับ Secrets ด้วย TruffleHog

การจัดเก็บรหัสบนระบบควบคุมเวอร์ชันโดยไม่ระวังอาจทำให้ **ข้อมูลลับ (Secrets) ปรากฏใน repository ได้ การตรวจจับ Secrets ตั้งแต่ขั้นตอน commit จะช่วยลดความเสี่ยงอย่างมาก ในบทความนี้เราจะสอนวิธีตั้งค่า *P…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ7 นาที
วิธีใช้ DALL·E API สร้างภาพจากข้อความด้วย Python อย่างปลอดภัยGrowth
16 กรกฎาคม 2569 เวลา 11:30

วิธีใช้ DALL·E API สร้างภาพจากข้อความด้วย Python อย่างปลอดภัย

การใช้ DALL·E API ผ่าน Python ช่วยให้คุณสร้างภาพจากข้อความได้อย่างรวดเร็วและยืดหยุ่น แต่ต้องตั้งค่าความปลอดภัยให้ถูกต้องเพื่อป้องกันข้อมูลรั่วไหลหรือค่าใช้จ่ายไม่คาดคิด บทความนี้สรุปขั้นตอนสำคัญ ตั้งแ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ6 นาที
วิธีทำ Automated Code Review ด้วย SonarCloud ใน GitHub ActionsGrowth
15 กรกฎาคม 2569 เวลา 20:30

วิธีทำ Automated Code Review ด้วย SonarCloud ใน GitHub Actions

การตรวจสอบโค้ดอัตโนมัติช่วยให้ทีมพัฒนามั่นใจว่าโค้ดยังคงคุณภาพและปลอดภัยตลอดวงจรชีวิตของซอฟต์แวร์ SonarCloud เป็นบริการคลาวด์ที่ทำหน้าที่สแกนโค้ดเพื่อหาข้อบกพร่อง, **code smells**, และช่องโหว่ด้านความ…

ต้นฉบับ TTN · ร่างด้วย AI ตรวจโดยบรรณาธิการ9 นาที
คัดลอกลิงก์แล้ว!