- การใช้ Google Cloud Storage และ Cloud Run เพื่อใช้งาน CDN - 2
- บทความที่สองเกี่ยวกับวิธีการสร้าง CDN โดยใช้ Google Cloud Storage และ Cloud Run อธิบายวิธีการส่งภาพและไฟล์ข้อความที่ได้รับการปรับให้เหมาะสมที่สุด รวมถึงการกระจายทรัพยากรไปยัง 8 ภูมิภาคทั่วโลกเพื่อลดเวลาแฝง
โพสต์นี้แปลโดย AI
บทสรุปของโพสต์โดย durumis AI
- อธิบายวิธีการปรับแต่งภาพและแปลงภาพเป็นรูปแบบต่างๆ ที่อัปโหลดไปยัง Google Cloud Storage โดยใช้ Cloud Run
- ใช้เหตุการณ์การอัปโหลดและการลบไฟล์ของ Cloud Storage เพื่อแปลงไฟล์ภาพเป็นรูปแบบ AVIF และ WebP และบีบอัดไฟล์ข้อความ แล้วซิงค์ข้อมูลการคัดลอกและการลบไปยังภูมิภาคอื่นๆ
- ด้วยวิธีนี้ เราสามารถจัดการการปรับแต่งภาพและการซิงค์ไฟล์ได้อย่างมีประสิทธิภาพในสภาพแวดล้อม CDN และบทความต่อๆ ไปจะกล่าวถึงการใช้งาน Google Cloud Load Balancer
ในบทความก่อนหน้านี้ เราได้พูดคุยเกี่ยวกับการส่งไฟล์รูปภาพที่ซิงค์กับ GCS โดยใช้ Cloud Run
ดังนั้น ในบทความสุดท้ายของซีรีส์ CDN นี้ เราจะมาพูดคุยเกี่ยวกับการซิงค์ GCS และการปรับแต่งรูปภาพกัน
Cloud Run โดยพื้นฐานแล้วทำงานผ่าน HTTP Hook แต่ HTTP Hook นั้นไม่ใช่ตัวกระตุ้นเหตุการณ์ (Event Trigger) เพียงอย่างเดียว
Cloud Run
เมื่อตั้งค่า Cloud Run คุณจะเห็นส่วนที่ชื่อว่า Trigger และในรายการนั้น คุณจะพบกับ Pub/Sub, Cloud Storage, Filestore และอื่นๆ นอกเหนือจาก HTTP ที่ให้มาโดยค่าเริ่มต้นแล้ว ตัวเลือกอื่นๆ ส่วนใหญ่เป็นผลิตภัณฑ์ที่ใช้กันมากที่สุด และเหตุการณ์อื่นๆ ที่คุณนึกออกส่วนใหญ่จะอยู่ในหมวด 'อื่นๆ' ก่อนอื่น ให้เลือก Cloud Storage Event เพื่อดูรายละเอียดเพิ่มเติม ดังที่แสดงในภาพต่อไปนี้ คุณจะเห็นเหตุการณ์ต่างๆ เช่น การเปลี่ยนแปลงไฟล์ การลบไฟล์ การสร้างไฟล์ และการเปลี่ยนแปลงเมตาข้อมูลของไฟล์
Cloud Run Eventarc
จากเหตุการณ์เหล่านี้ เราจะใช้เหตุการณ์ deleted และ finalized สองเหตุการณ์ในการสร้าง Cloud Run ซึ่งจะสร้างเหตุการณ์เมื่อมีการอัปโหลดไฟล์ไปยัง GCS หรือเมื่อมีการลบไฟล์ที่อัปโหลดแล้ว
สิ่งที่ Cloud Run ต้องดำเนินการมีดังนี้
- เมื่ออัปโหลดไฟล์แล้ว ให้ตรวจสอบประเภทของไฟล์นั้น จากนั้นดำเนินการตามขั้นตอนต่อไปนี้
- หากเป็นไฟล์ข้อความ (css, js) ให้บีบอัดไฟล์ด้วย br และ gzip
- หากเป็นไฟล์รูปภาพ ให้ใช้sharp npmในการแปลงเป็นรูปแบบ avif และ webp
- คัดลอกไฟล์ที่สร้างขึ้นใหม่ไปยัง หลายๆ "ภูมิภาค"ที่กำหนด
- เมื่อมีคำขอให้ลบไฟล์ ให้ลบไฟล์นั้นในภูมิภาคอื่นๆ ด้วย
โดยทั่วไปแล้ว หากจัดการ 3 ขั้นตอนหลัก (การแปลง การคัดลอก และการลบ) ให้ดี การซิงค์ไฟล์จะไม่ใช่เรื่องยากแม้ว่าจะมีหลายภูมิภาคก็ตาม ในโค้ด คุณเพียงแค่ใช้ npm สองตัวเท่านั้นคือส่วนที่เชื่อมต่อกับ GCS และ sharp ก็สามารถจัดการได้อย่างง่ายดาย
นี่คือจุดจบของซีรีส์บทความพื้นฐานเกี่ยวกับ CDN
ในบทความถัดไป เราจะเริ่มพูดคุยเกี่ยวกับ GCLB (Google Cloud Loadbalancer)
โดยทั่วไปแล้ว เรื่องราวของ CDN จะต้องเกี่ยวข้องกับ Load Balancer (LB) แต่มีบางส่วนที่ถูกละไว้ในเนื้อหา เราจึงวางแผนที่จะพูดคุยในซีรีส์บทความถัดไป
ขอบคุณครับ