ทำงานกับ Meet eCDN On-Premises API

หน้านี้อธิบายวิธีใช้ API เครือข่ายนำส่งข้อมูล (eCDN) ของ Google Meet Enterprise ในองค์กรสำหรับการไลฟ์สดของ Google Meet

โซลูชัน API ที่อธิบายไว้ที่นี่ช่วยให้ลูกค้าใช้ชุดฟีเจอร์ทั้งหมดของ eCDN ของ Meet ได้โดยไม่ต้องเปิดเผยข้อมูล IP ส่วนตัวต่อ Google คุณสามารถกำหนดเว็บเซอร์วิสในองค์กรใหม่ในเครือข่ายของคุณเองซึ่งส่ง รหัสแทนข้อมูลที่อยู่ IP ส่วนตัว

ภาพรวม eCDN ของ Meet

eCDN สร้างขึ้นใน Meet และจะเริ่มต้นระบบโดยอัตโนมัติในระหว่าง ไลฟ์สดหลังจากที่ผู้ดูแลระบบ Google Workspace ตั้งค่าแล้ว เมื่อเปิดใช้ eCDN ของ Meet ผู้ชมไลฟ์สดภายในเครือข่ายในพื้นที่จะแชร์สื่อที่ไลฟ์สดกับคนอื่นๆ ในเครือข่ายได้ผ่านการแชร์แบบเพียร์ทูเพียร์ (P2P) อุปกรณ์ส่วนใหญ่จะได้รับสื่อที่ไลฟ์สดจาก ผู้ที่อยู่ใกล้เคียงและไม่จำเป็นต้องดึงข้อมูลจากเซิร์ฟเวอร์ของ Google ซึ่งจะช่วยลด แบนด์วิดท์ทั้งหมดที่ผู้ชมใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและการใช้ eCDN ของ Meet ได้ที่การจัดไลฟ์สดขนาดใหญ่

eCDN กำหนดให้ผู้ชมไลฟ์สดของ Meet ต้องจัดกลุ่มเป็น กลุ่มเพียร์ กลุ่มเพียร์คือกลุ่มของโหนดที่ได้รับอนุญาตให้ แชร์สื่อกับโหนดอื่นๆ อุปกรณ์ในกลุ่มการเพียร์จะได้รับอนุญาตให้ เพียร์หรือถูกบล็อกจากการเพียร์ก็ได้ อุปกรณ์ที่อนุญาตจะเชื่อมต่อกับอุปกรณ์อื่นๆ ในกลุ่มการเพียร์เดียวกันเท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับกลุ่มการ Peering ได้ที่หัวข้อก่อนจะเริ่มจัดไลฟ์สดขนาดใหญ่

เมื่อใดที่ควรใช้ API

eCDN สามารถสร้างกลุ่มการเพียร์ได้โดยใช้นโยบายการเพียร์ที่แตกต่างกันหลายแบบ ได้แก่ random, subnet หรือ custom rules โดยจะแชร์ตารางช่วงเครือข่ายส่วนตัวกับเซิร์ฟเวอร์เครื่องมือติดตาม eCDN ของ Google เพื่อแมปที่อยู่ IP ส่วนตัวของโหนดเพียร์แต่ละรายการกับกลุ่มเพียร์ custom rules นโยบายเป็นโซลูชันที่แนะนำและเหมาะกับสภาพแวดล้อมการผลิตส่วนใหญ่

อย่างไรก็ตาม custom rulesนโยบายกำหนดให้คุณต้องแชร์โครงสร้างเครือข่ายส่วนตัวส่วนใหญ่กับ Google นอกจากนี้ ผู้ใช้แต่ละรายยังเปิดเผยที่อยู่ IP ส่วนตัวที่ตรวจพบในเครื่องต่อ Google ขณะใช้ eCDN สำหรับองค์กรบางแห่ง แนวทางด้านความปลอดภัยอาจไม่อนุญาตให้แชร์ข้อมูล IP ส่วนตัว

พัฒนาด้วย Meet eCDN On-Premises API

Meet eCDN On-Premises API มีข้อกำหนดของเว็บเซิร์ฟเวอร์ที่คุณ นำไปใช้และโฮสต์ในเครือข่ายขององค์กรได้ คุณสร้าง บริการบนเว็บที่กำหนดเองซึ่งเข้ากันได้กับ API เพื่อทำงานทั้งหมดที่ขึ้นอยู่กับ ข้อมูล IP ส่วนตัวได้ เพื่อไม่ให้มีการแชร์ข้อมูลกับ Google

API ครอบคลุม 2 ขั้นตอนสำคัญสำหรับการจับคู่ที่อยู่ IP ส่วนตัว ซึ่งโดยปกติจะจัดการโดยเซิร์ฟเวอร์ติดตาม eCDN ได้แก่ การแมปที่อยู่ IP ส่วนตัว กับกลุ่มการ Peering และการแลกเปลี่ยนข้อมูลข้อเสนอและคำตอบของ Session Description Protocol (SDP) ระหว่างการส่งสัญญาณ WebRTC

เมื่อบริการทางเว็บเสร็จสมบูรณ์แล้ว คุณต้องกำหนดค่า คอนโซลผู้ดูแลระบบให้ใช้On-premises serviceนโยบายการ Peering และรวม URL ของบริการทางเว็บที่กำหนดเอง

ข้อกำหนด

หากต้องการเปิดใช้ข้อกำหนดเหล่านี้สำหรับองค์กร โปรดขอให้ผู้ดูแลระบบ Google Workspace ดำเนินการดังนี้

  • เว็บเซิร์ฟเวอร์ที่ใช้ HTTPS สามารถติดตั้งใช้งาน API นี้ได้

  • ใช้ HTTPS เพื่อป้องกันไม่ให้เนื้อหาผสมล้มเหลว

  • ยอมรับและแสดงผลข้อมูล JSON ใช้การเข้ารหัสเนื้อหาที่เบราว์เซอร์รองรับ

  • แสดงปลายทางภายใต้เส้นทาง /vn โดยที่ n คือเวอร์ชัน API ที่เลือก เช่น /v1/get-peering-group

  • ผู้ชมสตรีมมิงแบบสดของ Meet สามารถดู URL ของเว็บ เซอร์วิสของคุณได้ผ่านคอนโซลผู้ดูแลระบบของ Google คุณตั้งค่า URL ได้ ทั่วโลก ต่อหน่วยขององค์กร หรือต่อกลุ่ม ตรวจสอบว่าผู้ชมเชื่อมต่อกับอินสแตนซ์ของบริการที่กำหนดได้ ดูข้อมูลเพิ่มเติมได้ที่กำหนดค่าคอนโซลผู้ดูแลระบบ

  • บริการของคุณควรแสดงการตอบกลับภายใน 2 วินาที ไม่เช่นนั้น ไคลเอ็นต์ eCDN จะปิดตัวลงและผู้ชมจะดูการถ่ายทอดสดต่อไปในฐานะผู้ใช้ทั่วไปที่ไม่ใช่ eCDN ซึ่งจะทำให้ผู้ชมไม่สามารถประหยัดแบนด์วิดท์ได้

  • บริการของคุณต้องตั้งค่าส่วนหัวกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ต่อไปนี้

    • Access-Control-Allow-Origin: meet.google.com
    • Access-Control-Allow-Headers: GET, POST, OPTIONS
    • Access-Control-Allow-Credentials: true

แมปที่อยู่ IP ส่วนตัวกับกลุ่มการ Peering

ไคลเอ็นต์ eCDN จะโทรออกทุกครั้งที่พยายามเชื่อมต่อกับเซิร์ฟเวอร์เครื่องมือติดตาม eCDN อีกครั้ง หลังจากที่อุปกรณ์ตรวจพบที่อยู่ IP ส่วนตัวแล้ว คุณต้อง แมปที่อยู่ดังกล่าวกับกลุ่มเพียร์ที่เหมาะสม คุณต้องส่งที่อยู่ IP ส่วนตัวไปยังเซิร์ฟเวอร์ในเครือข่ายและแก้ไขด้วยตนเองไปยังกลุ่มเพียร์โดยใช้วิธีget-peering-group() ระบบจะแสดงรหัสกลุ่มการ Peering ในการตอบกลับ เมื่อสื่อสารกับ Google ระบบจะส่งรหัสกลุ่มการ Peering ที่ได้แทน ที่อยู่ IP ส่วนตัว

วิธีแมปที่อยู่ IP ส่วนตัวกับกลุ่มเพียร์
รูปที่ 1 การแมปที่อยู่ IP ส่วนตัวกับกลุ่มเพียร์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้เมธอด get-peering-group() พร้อมกับการตอบกลับข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาการตอบกลับที่คาดไว้

POST /v1/get-peering-group
Content-Type: application/json

Request body:
{
  "availableIPs": []{
    "format": "ipv4"|"ipv6",
    "address": "DETECTED_ADDRESS"
  }
}

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE",
}

Response body:
{
  "result": "PEERING_GROUP_ID",
  "error": null,
}

ตารางต่อไปนี้แสดงรูปแบบการตอบกลับที่คาดไว้

สถานะ HTTP ข้อผิดพลาด รหัสกลุ่มการ Peering รีแอ็กชันของลูกค้า
200 Null สตริงที่ไม่ใช่ค่าว่าง ควรจัดเรียงไคลเอ็นต์เป็นกลุ่มการ Peering และดำเนินการเชื่อมต่อกับเซิร์ฟเวอร์เครื่องมือติดตาม eCDN
200 Null NOT_FOUND ไคลเอ็นต์สิ้นสุดเซสชัน eCDN
200 Null BLOCKED ไคลเอ็นต์สิ้นสุดเซสชัน eCDN
200 สตริงอื่นๆ ที่ไม่ใช่สตริงว่าง Null ไคลเอ็นต์สิ้นสุดเซสชัน eCDN
302 (พบ) ไคลเอ็นต์จะเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุในส่วนหัวของ Location ในเนื้อหาการตอบกลับ
รหัสสถานะอื่นๆ สตริงใดก็ได้ สตริงใดก็ได้ ไคลเอ็นต์สิ้นสุดเซสชัน eCDN

การแลกเปลี่ยนข้อมูลข้อเสนอ-คำตอบของ SDP

หากต้องการเริ่มการเชื่อมต่อ WebRTC อุปกรณ์ต้องแลกเปลี่ยนข้อเสนอและคำตอบ SDP รวมถึง Interactive Connectivity Establishment (ICE) ที่มีข้อมูล IP ส่วนตัว โดยจะดำเนินการดังกล่าวเป็นส่วนหนึ่งของกระบวนการส่งสัญญาณ WebRTC

ไคลเอ็นต์ต้องเข้ารหัสผู้สมัคร ICE ภายในเครือข่ายผ่าน Meet eCDN On-Premises API โดยใช้วิธี encrypt-sdp() โดยวิธีนี้จะใช้คีย์ ที่ไม่เคยเปิดเผยต่อ Google จากนั้นระบบจะส่งข้อเสนอ SDP ที่เข้ารหัสไปยังเพียร์ โดยใช้เซิร์ฟเวอร์ติดตาม eCDN จากนั้นเพียร์ไคลเอ็นต์จะถอดรหัสข้อมูลที่ได้รับภายในเครือข่ายของตนโดยใช้วิธีdecrypt-sdp() จากนั้น Google จะ ส่งต่อข้อเสนอและคำตอบระหว่างเพียร์ที่เชื่อมต่อ

เมื่อสร้างการเชื่อมต่อโดยใช้ Meet eCDN On-Premises API แล้ว eCDN จะทำงานตามปกติ เพียร์จะกำหนดเส้นทางสื่อผ่านเครือข่ายเพียร์ปกติ และการรับส่งข้อมูลสื่อจะไม่ผ่านหรือใช้ API

วิธีเข้ารหัสและถอดรหัสข้อมูลข้อเสนอและคำตอบของ SDP
รูปที่ 2 การเข้ารหัสและถอดรหัสข้อมูลข้อเสนอและคำตอบของ SDP

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้เมธอด encrypt-sdp() พร้อมกับการตอบกลับข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาการตอบกลับที่คาดไว้

POST /v1/encrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "SDP_DATA" // raw SDP data
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE", // error message
}

Response body:
{
  "result": "ENCRYPTED_DATA_STRING", // encrypted data as string
  "error": null,
}

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้เมธอด decrypt-sdp() พร้อมกับการตอบกลับข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาการตอบกลับที่คาดไว้

POST /v1/decrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "ENCRYPTED_DATA_STRING", // encrypted data as string (size limit: 1 MB)
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE", // error message
}

Response body:
{
  "result": "SDP_DATA" // raw SDP data
  "error": null,
}

ตารางต่อไปนี้แสดงรูปแบบการตอบกลับที่คาดไว้

สถานะ HTTP ข้อผิดพลาด รหัสกลุ่มการ Peering รีแอ็กชันของลูกค้า
200 Null สตริงที่ไม่ใช่ค่าว่าง ไคลเอ็นต์คาดหวังว่าจะมีการใช้ข้อมูล SDP ที่เข้ารหัสหรือถอดรหัสอย่างถูกต้อง
200 สตริงใดก็ได้ที่ไม่ใช่สตริงว่าง Null ไคลเอ็นต์สิ้นสุดเซสชัน eCDN
302 (พบ) ไคลเอ็นต์จะเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุในส่วนหัวของ Location ในเนื้อหาการตอบกลับ
รหัสสถานะอื่นๆ ค่าใดก็ได้ ค่าใดก็ได้ ไคลเอ็นต์สิ้นสุดเซสชัน eCDN

กำหนดค่าคอนโซลผู้ดูแลระบบ

หากต้องการใช้ Meet eCDN On-Premises API คุณต้องกำหนดค่า eCDN ใน คอนโซลผู้ดูแลระบบให้มี URL ของ บริการทางเว็บที่กำหนดเอง

หากต้องการตั้งค่า eCDN ให้สร้างนโยบายการเพียร์โดยใช้ On-premises service เพื่อจับคู่ข้อมูล IP กับกลุ่มการเพียร์ด้วยตนเอง คุณยังระบุหมายเลขพอร์ตได้ด้วยหากไม่ได้ใช้พอร์ตเริ่มต้น 443 URL ควรมีรูปแบบดังนี้ WEB_SERVICE.example.com:8080 โดย WEB_SERVICE คือชื่อบริการเว็บของคุณ

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