AWS Amazon Cloud Partner: การทำให้เข้าใจถึงการเล่นเกมขั้นสูงของ AWS CloudFront: ใช้ Edge @ Lambda เพื่อปรับแต่งทิศทางที่โหนดขอบ

เมฆ 2026-05-29 阅读 7
cloud

เพื่อนๆที่เล่นอีคอมเมิร์ซข้ามพรมแดนไซต์อิสระในต่างประเทศหรือแอปในต่างประเทศที่มีการเข้าชมจำนวนมากใช่ไหม

Amazon CloudFront (CDN ทั่วโลกของ AWS)

ไม่ใช่คนแปลกหน้าแน่นอนโดยปกติแล้วทุกคนจะใช้มันเป็น "โล่แคชแบบคงที่" ขนาดใหญ่: แคชรูปภาพเร่งวิดีโอและบล็อกการโจมตี DDoS ที่เป็นอันตราย

แต่ถ้าความเข้าใจของคุณเกี่ยวกับ CloudFront อยู่ที่ "แคชแบบคงที่" เท่านั้นมันจะรุนแรงจริงๆ

วันนี้เรามาพูดถึงการเล่นเกมแบบฮาร์ดคอร์ขั้นสูง:

Lambda@ Edge

。พูดง่ายๆก็คือช่วยให้คุณสามารถ "ส่ง" รหัสที่กำหนดเอง (Node.js หรือ Python) ไปยังโหนดขอบ CDN หลายร้อยโหนดทั่วโลกใน AWS ได้โดยตรงคำขอยังไม่มาถึงเซิร์ฟเวอร์ไซต์ต้นทางของคุณบนโหนด CDN ที่ใกล้กับผู้ใช้มากที่สุดโค้ดได้ถูกเรียกใช้งานและการเปลี่ยนเส้นทางที่กำหนดเองการเปลี่ยนเส้นทางหรือการแก้ไขเนื้อหาเสร็จสมบูรณ์

สิ่งนี้ไม่เพียงช่วยให้เซิร์ฟเวอร์ต้นทางของคุณแบ่งปันแรงกดดันทางตรรกะทางธุรกิจได้ถึง90% แต่ยังช่วยลดความล่าช้าในการตอบสนองของผู้ใช้ทั่วโลกให้ได้มากที่สุดอย่าพูดเรื่องไร้สาระเพียงแค่เปิดมัน

ขั้นตอนที่1: ทำความเข้าใจเกี่ยวกับโอกาสในการทริกเกอร์4แบบของ Lambda @ Edge

ในการเล่นกลกับโหนดขอบคุณต้องจำห่วงโซ่คำขอที่สมบูรณ์ของ CloudFront ก่อนคำขอจะถูกส่งจากโทรศัพท์มือถือของผู้ใช้เพื่อรับข้อมูลและจะผ่านไป

4ระดับ

。คุณสามารถแทรกรหัส Lambda ของคุณในระดับใดก็ได้:

Viewer Request (คำขอผู้ชม): ผู้ใช้เพียงแค่ส่งคำขอไปยังโหนด CDN 。ในขณะนี้ CDN ยังไม่ได้ตรวจสอบว่ามีการแคชหรือไม่รหัสนี้เหมาะสมที่สุดในการทำ: การทดสอบ A/B, การปิดกั้น IP ที่เป็นอันตรายที่เฉพาะเจาะจงและการเปลี่ยนเส้นทาง URL เก่า

Origin Request (คำขอไซต์ต้นทาง): โหนด CDN ตรวจสอบและพบว่าไม่มีแคชฉันพร้อมที่จะกัดกระสุนและไปที่เซิร์ฟเวอร์ไซต์ต้นทางของคุณเพื่อรับข้อมูลรหัสนี้เหมาะสำหรับการทำ: แก้ไขเส้นทางต้นทางแบบไดนามิกและโอนคำขอไปยังสถานีต้นทางต่างๆตามอุปกรณ์ของผู้ใช้ (โทรศัพท์มือถือ/คอมพิวเตอร์)

Origin Response (การตอบสนองของไซต์ต้นทาง): เซิร์ฟเวอร์ไซต์ต้นทางได้คายข้อมูลไปยังโหนด CDN และพร้อมที่จะบันทึกลงในแคชรหัสนี้เหมาะสำหรับการทำ: ทำความสะอาดหรือเพิ่มส่วนหัวตอบสนอง HTTP ที่เฉพาะเจาะจงการฉีดนโยบายความปลอดภัย

Viewer Response (การตอบสนองของผู้ชม): โหนด CDN พร้อมที่จะส่งข้อมูลกลับไปยังเบราว์เซอร์ของผู้ใช้อย่างเป็นทางการรหัสถูกแทรกที่นี่เหมาะสำหรับการทำ: การฉีดข้อมูลส่วนบุคคลแบบไดนามิกที่ไม่เหมาะสำหรับการแคช

ขั้นตอนที่สอง: การฝึกซ้อมการต่อสู้จริงโดยใช้สคริปต์ขอบเพื่อให้เกิดการทดสอบ A/B อัจฉริยะ

พูดอย่างเดียวแต่ไม่ลงมือทำนั่นเป็นแค่การอวดลวงมาคืนค่าสถานการณ์ขั้นสูงระดับองค์กรโดยตรง: ส่วนหน้าของบริษัทได้เปิดตัวฟังก์ชันใหม่ซึ่งจำเป็นต้องทำ

การทดสอบ A/B

。เราหวังว่าผู้ใช้ทั่วโลกในการเข้าถึง

[Ht

Tps: // yourcompan

Y.com/index.html]

เอชที

Tps: // yourcompany.com/index.html)

เวลา:

50% ของผู้ใช้ยังคงอยู่ในหน้าเก่า

50% ของผู้ใช้ถูกนำไปยังหน้าใหม่ index_v2.html อย่างเงียบๆ

ข้อกำหนดที่เข้มงวด: ไม่สามารถเปลี่ยนแปลง URL ของแถบที่อยู่ของเบราว์เซอร์ของผู้ใช้ในกระบวนการทั้งหมดได้และเซิร์ฟเวอร์ไซต์ต้นทางไม่สามารถมีส่วนร่วมในการตัดสินได้ทั้งหมดนี้ทำบนขอบของ CDN

ความต้องการนี้เหมาะสมที่สุดสำหรับการเชื่อม Lambda

Viewer Request (คำขอผู้ชม)

ระดับ

ขั้นตอนที่1: ใน

Us-fast-1

การเขียนทางภูมิศาสตร์ฟังก์ชัน Lambda

คำเตือนของ Iron Law: ไม่ว่าธุรกิจของคุณจะอยู่ที่ใดในโลก Lambda @ Edge จะต้องถูกสร้างขึ้นในพื้นที่ "Northern Virginia (us-fast-1)" มิฉะนั้นจะไม่สามารถปรับใช้กับโหนด CDN ทั่วโลกได้

ลงชื่อเข้าใช้คอนโซล AWS เปลี่ยนเป็น us-east-1และสร้างฟังก์ชัน Lambda ใหม่

การเลือกภาษารัน Node.js (ฟังก์ชันขอบต้องการความเร็วในการดำเนินการสูงมาก Node.js เป็นตัวเลือกแรก)

ในแง่ของสิทธิ์ผู้ให้บริการ edgelambda.amazonaws.com ต้องได้รับอนุญาตให้เรียกใช้ฟังก์ชันในบทบาทการดำเนินการ

เขียนรหัสตรรกะหลักต่อไปนี้:

คลิก Deploy เพื่อบันทึก

ขั้นตอนที่สาม: "ส่ง" รหัสไปยังโหนดขอบทั่วโลก

หลังจากเขียนโค้ดเสร็จแล้วจะปล่อยให้โหนด CDN ทั่วโลกยืนเฝ้าได้อย่างไร?

ที่มุมขวาบนของหน้าฟังก์ชัน Lambda ให้คลิกที่ "Actions"-> "Deploy to Lambda @ Edge"

กำหนดค่าพารามิเตอร์การปรับใช้: Distribution: เลือก ID ตัวอย่าง CloudFront ที่มีอยู่ของคุณ Cache Behavior: เลือกพฤติกรรมการแคชเฉพาะ (เช่นค่าเริ่มต้น * หรือสำหรับ/index.html) CloudFront Event: เลือก Viewer Request โดยไม่ลังเล

ตรวจสอบหน้าต่างป๊อปอัปแล้วคลิกปรับใช้

ในขณะนี้ AWS จะเริ่มโปรแกรมการแจกจ่ายอัตโนมัติในระบบคลาวด์เพื่อคัดลอกและซิงโครไนซ์โค้ด Node.js หลายสิบบรรทัดของคุณไปยังโหนดขอบ CDN หลายร้อยโหนดทั่วโลกภายในไม่กี่นาที

ขั้นตอนที่สี่: ประวัติการหลีกเลี่ยงเลือดและน้ำตาของการตรวจสอบการทดสอบและการเล่นเกมบนขอบ

หลังจากการปรับใช้คุณใช้เครือข่ายทั่วโลกเพื่อรีเฟรชเว็บไซต์ของคุณอย่างบ้าคลั่งคุณจะพบว่าแถบที่อยู่จะแสดงตลอดไป

ดัชนี.html

แต่บนหน้าจอจะสลับแบบสุ่มระหว่างเวอร์ชันเก่าและเวอร์ชันใหม่บันทึกของเซิร์ฟเวอร์ต้นทางนั้นสะอาดและไม่รู้ด้วยซ้ำว่ามีการทดสอบ A/B เกิดขึ้นและความดันทั้งหมดได้รับการแก้ไขโดยโหนด CDN ที่ส่วนหน้าสุด

แต่เมื่อคุณตื่นเต้นที่จะเตรียมที่จะใส่ Lambda @ Edge ในทุกธุรกิจ

ก่อนหน้านี้คุณต้องเข้าใจข้อจำกัดที่โหดร้ายเหล่านี้ที่เกิดจาก "การประหารชีวิต" มิฉะนั้น CDN ทั้งหมดจะพังโดยไม่ได้ตั้งใจ:

1."ร่างกาย" ที่เข้มงวดกับการจำกัดเวลา

เพื่อที่จะติดตามความเร็วในการตอบสนองขั้นสูงสุดทรัพยากรที่เหลืออยู่สำหรับโค้ดนั้นขี้เหนียวมาก:

หากคุณเพิ่มโค้ดในขั้นตอน Viewer Request / Response แพ็กเก็ตโค้ดของคุณต้องไม่เกิน1MB เวลาดำเนินการต้องไม่เกิน5วินาทีและหน่วยความจำที่มีอยู่จะต้องมีเพียง128MB

อย่าคาดหวังว่าจะเขียนแบบจำลองการเรียนรู้เชิงลึกที่ซับซ้อนบนโหนดขอบหรือเชื่อมต่อกับฐานข้อมูลระยะไกลที่มีเวลาแฝงสูงแบบเดิมหลักการของ Edge Code คือ: สั้นที่สุดสั้นที่สุดและเร็วที่สุด

2.ป้องกันการเชื่อมต่อโดยตรงกับฐานข้อมูลการผลิต (จะทำให้ความเร็วเครือข่ายช้าลง)

หาก Lambda @Edge ของคุณเชื่อมต่อกับฐานข้อมูล MySQL ทางกายภาพที่ตั้งอยู่ในปักกิ่งหรือโอเรกอนเพื่อตรวจสอบข้อมูลผู้ใช้ทุกครั้งที่ผู้ใช้ร้องขอข้อได้เปรียบในการเร่งความเร็วที่ CDN นำมาจะถูกลบล้างโดยความล่าช้าของเครือข่ายข้ามชาติที่สูง

แนวทางที่ถูกต้อง: หากคุณต้องการอ่านและเขียนข้อมูลโปรดใช้ Amazon DynamoDB Global Tables (ฐานข้อมูล NoSQL แบบกระจายทั่วโลก) หรือใช้ CloudFront KeyValueStore (KVS) ที่มีฟังก์ชันจำกัดแต่เร็วกว่า

3.ดูกระเป๋าสตางค์ของคุณ

Lambda @ Edge คำนวณเงินตาม "จำนวนคำขอ" และ "เวลาดำเนินการ (ระดับมิลลิวินาที)" หากเว็บไซต์ของคุณมีการเข้าชม PV หลายร้อยล้านครั้งทุกวันและการเข้าชมทุกครั้งจะต้องทริกเกอร์สคริปต์ Viewer Request ที่ซับซ้อนการเรียกเก็บเงิน Lambda ในช่วงปลายเดือนอาจทำให้คุณเจ็บปวด

เคล็ดลับการประหยัดเงิน: หากคุณเพียงแค่เปลี่ยนเส้นทาง HTTP อย่างง่ายเขียนเส้นทางใหม่ตามรหัสประเทศหรือเพิ่มหัวตอบสนองด้านความปลอดภัย (เช่นการป้องกันการหักหลัง HSTS) ให้ใช้ CloudFront Functions ก่อนเป็นรุ่นที่มีน้ำหนักเบาของ Lambda @ Edge ความเร็วในการดำเนินการอยู่ที่ระดับย่อยของวินาทีและค่าใช้จ่ายเป็นเพียงเศษเสี้ยวของ Lambda @ Edge และไม่จำเป็นต้องปรับใช้ใน us-east-1

สรุป

การเปิดเผยม่านของการเล่นเกมขั้นสูงสาระสำคัญของ Lambda @ Edge คือการใส่"

ความสามารถในการคำนวณ

”. ด้วยการแยกตรรกะเช่นการทดสอบ A/B การตรวจสอบโซ่ป้องกันการโจรกรรมและการเปลี่ยนเส้นทางแบบปรับได้ของเทอร์มินัลมือถือออกจากเซิร์ฟเวอร์แบบรวมศูนย์และวางไว้บนโหนดขอบของการกระจายทั่วโลกคุณไม่เพียงแต่ได้รับแนวป้องกันส่วนหน้าที่ไม่สามารถทำลายได้และไม่จำกัดแต่ยังใช้ต้นทุนสถาปัตยกรรมที่ต่ำที่สุดเพื่อแลกกับประสบการณ์ที่นุ่มนวลและราบรื่นของผู้ใช้ทั่วโลก

1
← 返回新闻中心