เพิ่งไปอ่านบทความใน Dev.to มาครับ เกี่ยวกับปัญหา webhook endpoint ที่เปลี่ยนไปทุกครั้งที่ restart แอพ เขายกตัวอย่างสถานการณ์ที่ทุกคนน่าจะเคยเจอ คือเราตั้ง Stripe หรือ GitHub หรือ Slack ให้ส่ง webhook มาที่ https://abc123.ngrok.io/hook พอ restart ปุ๊บกลายเป็น https://xyz789.ngrok.io/hook ซะงั้น แล้วก็ต้องมีคนไปแก้ dashboard ใหม่ทุกที เห็นแล้วแบบใช่เลยชีวิตจริงมาก เลยอยากเอามาถามเพื่อนๆ ในกลุ่มว่าใครมีวิธีจัดการยังไงบ้าง
ในบทความเขาอธิบายสาเหตุที่แท้จริงไว้น่าสนใจนะ คือปัญหามันไม่ได้อยู่ที่ DNS หรือการตั้งค่า แต่เป็นเพราะ receiver ของเราไม่มีตัวตนที่ถาวรบนอินเทอร์เน็ต เวลาที่เราใช้ tunnel ฟรีอย่าง ngrok มันจะสุ่ม subdomain ให้ใหม่ทุกครั้งที่เปิด session ส่วนพวก dynamic IP จาก ISP ก็เปลี่ยนได้ตลอด หรือถ้าเป็น CGNAT ที่ carrier ใช้อยู่ก็ไม่มี public IP ให้ forward เข้ามาเลย ยิ่งถ้าเป็น laptop ที่ย้ายไปตาม Wi-Fi หรือ container ที่ถูกสร้างใหม่ แต่ละครั้งก็คือ URL ใหม่หรือ URL ที่ตายแล้วทั้งนั้น
เขาพูดถึงทางเลือกหลายแบบนะ ทั้ง ngrok แบบเสียเงินที่ซื้อ reserved domain ได้ แต่ก็ต้องจ่ายค่าเช่าชื่อกับคนกลาง และ traffic ทั้งหมดต้องวิ่งผ่านเขา ส่วน Cloudflare Tunnel ก็ให้ hostname ที่เสถียรจริง แต่ต้องยอมให้ CDN อยู่ข้างหน้า service เรา แล้ว config ก็อยู่ per-machine อีก หรือจะใช้ VPS ที่มี static IP ซึ่งเป็นวิธีที่ทื่อแต่ได้ผล แต่เราก็ต้องดูแล infrastructure เอง และ service ก็ไม่ได้อยู่บนเครื่องเราแล้ว สุดท้ายเขาแนะนำ Pilot Protocol ซึ่งเป็น overlay network สำหรับ AI agent โดยเฉพาะ ให้ permanent address ที่ไม่เปลี่ยนแม้เราจะ restart หรือย้ายเครื่องไป cloud อื่น โดยใช้ STUN, NAT hole-punching และ relay fallback เรียกว่าติดตั้งเสร็จภายในนาทีเดียว แล้ว address คงที่ตลอด ไม่ต้องมายุ่งกับ router หรือ firewall เลย
ส่วนตัวผมคิดว่าประเด็นมันอยู่ที่ว่า "ใคร" เป็นคนดูแลระบบ ถ้าเป็นมนุษย์อย่างเรา การไปแก้ URL ทุกครั้งที่ restart อาจจะพอรับได้ แต่ถ้าเป็น AI agent ที่ทำงานอัตโนมัติ ไม่มีคนคอยตามแก้ dashboard ให้หลัง restart ทุกครั้ง ปัญหานี้มันคือเรื่องใหญ่แน่นอน ผมว่าวิธีคิดแบบที่เขาพูดคือ "the fix isn't a better URL — it's an address that doesn't change" มันถูกต้องที่สุด แต่ก็อดคิดไม่ได้ว่า การต้องพึ่งพา overlay network ของเขามันจะเป็นการผูกกับ vendor มากไปไหม หรือถ้า Pilot Protocol หายไปเราจะทำยังไงต่อ แล้วเพื่อนๆ ที่นี่มีวิธีจัดการกับปัญหา webhook URL ที่ไม่เสถียรกันยังไงบ้าง เคยลองใช้ Cloudflare Tunnel หรือซื้อ reserved domain จาก ngrok กันแล้วเป็นยังไงบ้าง หรือมีวิธีเจ๋งๆ ที่ไม่ต้องพึ่ง service พวกนี้เลยไหมครับ
ในบทความเขาอธิบายสาเหตุที่แท้จริงไว้น่าสนใจนะ คือปัญหามันไม่ได้อยู่ที่ DNS หรือการตั้งค่า แต่เป็นเพราะ receiver ของเราไม่มีตัวตนที่ถาวรบนอินเทอร์เน็ต เวลาที่เราใช้ tunnel ฟรีอย่าง ngrok มันจะสุ่ม subdomain ให้ใหม่ทุกครั้งที่เปิด session ส่วนพวก dynamic IP จาก ISP ก็เปลี่ยนได้ตลอด หรือถ้าเป็น CGNAT ที่ carrier ใช้อยู่ก็ไม่มี public IP ให้ forward เข้ามาเลย ยิ่งถ้าเป็น laptop ที่ย้ายไปตาม Wi-Fi หรือ container ที่ถูกสร้างใหม่ แต่ละครั้งก็คือ URL ใหม่หรือ URL ที่ตายแล้วทั้งนั้น
เขาพูดถึงทางเลือกหลายแบบนะ ทั้ง ngrok แบบเสียเงินที่ซื้อ reserved domain ได้ แต่ก็ต้องจ่ายค่าเช่าชื่อกับคนกลาง และ traffic ทั้งหมดต้องวิ่งผ่านเขา ส่วน Cloudflare Tunnel ก็ให้ hostname ที่เสถียรจริง แต่ต้องยอมให้ CDN อยู่ข้างหน้า service เรา แล้ว config ก็อยู่ per-machine อีก หรือจะใช้ VPS ที่มี static IP ซึ่งเป็นวิธีที่ทื่อแต่ได้ผล แต่เราก็ต้องดูแล infrastructure เอง และ service ก็ไม่ได้อยู่บนเครื่องเราแล้ว สุดท้ายเขาแนะนำ Pilot Protocol ซึ่งเป็น overlay network สำหรับ AI agent โดยเฉพาะ ให้ permanent address ที่ไม่เปลี่ยนแม้เราจะ restart หรือย้ายเครื่องไป cloud อื่น โดยใช้ STUN, NAT hole-punching และ relay fallback เรียกว่าติดตั้งเสร็จภายในนาทีเดียว แล้ว address คงที่ตลอด ไม่ต้องมายุ่งกับ router หรือ firewall เลย
ส่วนตัวผมคิดว่าประเด็นมันอยู่ที่ว่า "ใคร" เป็นคนดูแลระบบ ถ้าเป็นมนุษย์อย่างเรา การไปแก้ URL ทุกครั้งที่ restart อาจจะพอรับได้ แต่ถ้าเป็น AI agent ที่ทำงานอัตโนมัติ ไม่มีคนคอยตามแก้ dashboard ให้หลัง restart ทุกครั้ง ปัญหานี้มันคือเรื่องใหญ่แน่นอน ผมว่าวิธีคิดแบบที่เขาพูดคือ "the fix isn't a better URL — it's an address that doesn't change" มันถูกต้องที่สุด แต่ก็อดคิดไม่ได้ว่า การต้องพึ่งพา overlay network ของเขามันจะเป็นการผูกกับ vendor มากไปไหม หรือถ้า Pilot Protocol หายไปเราจะทำยังไงต่อ แล้วเพื่อนๆ ที่นี่มีวิธีจัดการกับปัญหา webhook URL ที่ไม่เสถียรกันยังไงบ้าง เคยลองใช้ Cloudflare Tunnel หรือซื้อ reserved domain จาก ngrok กันแล้วเป็นยังไงบ้าง หรือมีวิธีเจ๋งๆ ที่ไม่ต้องพึ่ง service พวกนี้เลยไหมครับ
ความคิดเห็น 1
กำลังโหลดความคิดเห็น...