با Meet eCDN On-Premises API کار کنید

این صفحه نحوه استفاده از API داخلی شبکه تحویل محتوای سازمانی گوگل میت (eCDN) برای پخش زنده گوگل میت را توضیح می‌دهد.

راهکار API شرح داده شده در اینجا به مشتریان این امکان را می‌دهد که از مجموعه کامل ویژگی‌های Meet eCDN بدون افشای اطلاعات IP خصوصی به گوگل استفاده کنند. شما می‌توانید یک سرویس وب داخلی جدید در شبکه خود تعریف کنید که به جای اطلاعات آدرس IP خصوصی، یک شناسه (ID) را منتقل کند.

مروری بر eCDN

eCDN در Meet تعبیه شده است و پس از تنظیم آن توسط مدیر Google Workspace، به طور خودکار در طول پخش زنده شروع به کار می‌کند. با روشن بودن Meet eCDN، بینندگان پخش زنده در یک شبکه محلی می‌توانند رسانه‌های پخش زنده را از طریق اشتراک‌گذاری نظیر به نظیر (P2P) با سایر دستگاه‌های همتا در شبکه به اشتراک بگذارند. اکثر دستگاه‌ها رسانه‌های پخش زنده را از دستگاه‌های همتا در نزدیکی خود دریافت می‌کنند و نیازی به دریافت آن از سرورهای گوگل ندارند. این امر کل پهنای باند مورد استفاده بینندگان را کاهش می‌دهد. برای اطلاعات بیشتر در مورد راه‌اندازی و استفاده از Meet eCDN، به بخش میزبانی پخش زنده‌های بزرگ مراجعه کنید.

eCDN از بینندگان پخش زنده Meet می‌خواهد که در گروه‌های همتا قرار گیرند. یک گروه همتا مجموعه‌ای از گره‌ها است که مجاز به اشتراک‌گذاری رسانه با یکدیگر هستند. دستگاه‌های موجود در یک گروه همتا یا مجاز به همتا شدن هستند یا از همتا شدن منع شده‌اند. دستگاه‌های مجاز فقط می‌توانند به دستگاه‌های دیگر در همان گروه همتا متصل شوند. برای اطلاعات بیشتر در مورد گروه‌های همتا، به بخش «قبل از شروع میزبانی پخش زنده‌های بزرگ» مراجعه کنید.

چه زمانی از API استفاده کنیم

eCDN می‌تواند با استفاده از چندین سیاست همتاسازی مختلف، گروه‌های همتا تشکیل دهد: random ، subnet یا custom rules . مورد دوم جدولی از محدوده‌های شبکه خصوصی را با سرور ردیاب eCDN گوگل به اشتراک می‌گذارد تا آدرس‌های IP خصوصی هر گره همتا را به یک گروه همتاسازی نگاشت کند. سیاست custom rules ، راه‌حل ترجیحی است و در اکثر محیط‌های تولید مناسب است.

با این حال، سیاست custom rules شما را ملزم می‌کند که بخش‌های بزرگی از ساختار شبکه خصوصی خود را با گوگل به اشتراک بگذارید. علاوه بر این، کاربران هنگام استفاده از eCDN، آدرس‌های IP خصوصی شناسایی‌شده محلی خود را در معرض دید گوگل قرار می‌دهند. برای برخی از سازمان‌ها، دستورالعمل‌های امنیتی آنها ممکن است اجازه اشتراک‌گذاری اطلاعات IP خصوصی را ندهد.

با استفاده از رابط برنامه‌نویسی کاربردی (API) داخلی Meet eCDN توسعه دهید

رابط برنامه‌نویسی کاربردی (API) Meet eCDN On-Premises، مشخصات یک وب سرور را ارائه می‌دهد که می‌توانید آن را به صورت محلی در شبکه سازمان خود پیاده‌سازی و میزبانی کنید. می‌توانید یک سرویس وب سفارشی بسازید که با API سازگار باشد تا تمام وظایف وابسته به اطلاعات IP خصوصی را انجام دهد، به طوری که اطلاعات با Google به اشتراک گذاشته نشود.

این API شامل دو مرحله حیاتی برای تطبیق آدرس‌های IP خصوصی است که معمولاً توسط سرور ردیاب eCDN انجام می‌شود: نگاشت آدرس‌های IP خصوصی به یک گروه همتا و تبادل داده‌های پیشنهاد-پاسخ پروتکل توصیف جلسه (SDP) در طول سیگنال‌دهی WebRTC.

پس از تکمیل سرویس وب، باید کنسول مدیریت را طوری پیکربندی کنید که از یک سیاست همتاسازی On-premises service استفاده کند و URL سرویس وب سفارشی شما را نیز در آن قرار دهد.

الزامات

اگر لازم است هر یک از این الزامات برای سازمانتان فعال باشد، از سرپرست Google Workspace خود بپرسید:

  • هر وب سروری که از HTTPS استفاده می‌کند می‌تواند این API را پیاده‌سازی کند.

  • برای جلوگیری از خطاهای محتوای ترکیبی، از HTTPS استفاده کنید.

  • داده‌های JSON را بپذیرید و برگردانید. از هر کدگذاری محتوایی که توسط مرورگر شما پشتیبانی می‌شود استفاده کنید.

  • نقاط انتهایی را تحت مسیر /v n ارائه دهید که در آن n نسخه API انتخاب شده است. به عنوان مثال، /v1/get-peering-group .

  • بینندگان پخش زنده Meet می‌توانند از طریق کنسول مدیریت گوگل، از آدرس اینترنتی (URL) سرویس وب شما مطلع شوند. این آدرس اینترنتی (URL) می‌تواند به صورت جهانی، برای هر واحد سازمانی یا برای هر گروه تنظیم شود. مطمئن شوید که بینندگان می‌توانند به نمونه سرویس اختصاص داده شده به خود متصل شوند. برای اطلاعات بیشتر، به پیکربندی کنسول مدیریت مراجعه کنید.

  • سرویس شما باید ظرف دو ثانیه پاسخی را برگرداند. در غیر این صورت، کلاینت eCDN خاموش می‌شود و بیننده به تماشای رویداد زنده به عنوان یک کاربر معمولی و غیر eCDN ادامه می‌دهد و از هرگونه صرفه‌جویی در پهنای باند محروم می‌شود.

  • سرویس شما باید هدرهای اشتراک‌گذاری منابع بین‌منبعی (CORS) زیر را تنظیم کند:

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

آدرس‌های IP خصوصی را به یک گروه همتا نگاشت کنید

کلاینت eCDN هر بار که سعی می‌کند دوباره به سرور ردیاب eCDN متصل شود، یک فراخوانی انجام می‌دهد. پس از اینکه دستگاهی یک آدرس IP خصوصی را شناسایی کرد، این آدرس باید به گروه همتاسازی مناسب نگاشت شود. شما باید آدرس IP خصوصی را به سروری در شبکه خود ارسال کنید و با استفاده از متد get-peering-group() آن را به صورت دستی به یک گروه همتاسازی تبدیل کنید. یک شناسه گروه همتاسازی در پاسخ بازگردانده می‌شود. هنگام برقراری ارتباط با گوگل، شناسه گروه همتاسازی حاصل به جای آدرس‌های IP خصوصی ارسال می‌شود.

چگونه آدرس‌های IP خصوصی به یک گروه همتا نگاشت می‌شوند.
شکل ۱. نگاشت آدرس‌های 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 خطا شناسه گروه همتا واکنش مشتری
۲۰۰ تهی رشته غیر خالی کلاینت باید در یک گروه همتا طبقه‌بندی شود و به سرور ردیاب eCDN متصل شود.
۲۰۰ تهی NOT_FOUND مشتری جلسه eCDN را پایان می‌دهد.
۲۰۰ تهی BLOCKED مشتری جلسه eCDN را پایان می‌دهد.
۲۰۰ رشته غیر خالی دیگر تهی مشتری جلسه eCDN را پایان می‌دهد.
۳۰۲ (یافت شد) کلاینت از مسیر هدایت به URL جدید مشخص شده در هدر Location بدنه پاسخ پیروی می‌کند.
هر کد وضعیت دیگری هر رشته‌ای هر رشته‌ای مشتری جلسه eCDN را پایان می‌دهد.

تبادل داده پیشنهاد-پاسخ SDP

برای شروع اتصال WebRTC، دستگاه‌ها باید پیشنهادات و پاسخ‌های SDP خود، از جمله کاندیدهای Interactive Connectivity Establishment (ICE) که حاوی اطلاعات IP خصوصی هستند را مبادله کنند. آنها این کار را به عنوان بخشی از فرآیند سیگنال‌دهی WebRTC انجام می‌دهند.

کلاینت‌ها باید کاندیدهای ICE خود را در داخل شبکه خود از طریق رابط برنامه‌نویسی کاربردی Meet eCDN On-Premises و با استفاده از روش encrypt-sdp() رمزگذاری کنند. این روش از کلیدی استفاده می‌کند که هرگز در معرض دید گوگل قرار نمی‌گیرد. سپس پیشنهاد رمزگذاری شده SDP با استفاده از سرور ردیاب eCDN به همتا ارسال می‌شود. همتای کلاینت سپس اطلاعات دریافتی را در داخل شبکه خود با استفاده از روش decrypt-sdp() رمزگشایی می‌کند. سپس گوگل پیشنهادها و پاسخ‌ها را بین همتایان متصل ارسال می‌کند.

پس از برقراری اتصال با استفاده از API داخلی Meet eCDN، eCDN به صورت عادی عمل می‌کند. نظیرها، رسانه را از طریق شبکه نظیرسازی معمول هدایت می‌کنند و ترافیک رسانه از API عبور نمی‌کند یا از آن استفاده نمی‌کند.

نحوه رمزگذاری و رمزگشایی داده‌های ارائه شده و پاسخ داده شده توسط SDP.
شکل ۲. رمزگذاری و رمزگشایی داده‌های پیشنهاد و پاسخ 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 خطا شناسه گروه همتا واکنش مشتری
۲۰۰ تهی رشته غیر خالی مشتری انتظار دارد از داده‌های SDP که به درستی کدگذاری یا رمزگشایی شده‌اند، استفاده شود.
۲۰۰ هر رشته غیر خالی تهی مشتری جلسه eCDN را پایان می‌دهد.
۳۰۲ (یافت شد) کلاینت از مسیر هدایت به URL جدید مشخص شده در هدر Location بدنه پاسخ پیروی می‌کند.
هر کد وضعیت دیگری هر مقداری هر مقداری مشتری جلسه eCDN را پایان می‌دهد.

پیکربندی کنسول مدیریت

برای استفاده از رابط برنامه‌نویسی کاربردی (API) داخلی Meet eCDN، باید eCDN را در کنسول مدیریت پیکربندی کنید تا URL سرویس وب سفارشی شما را نیز شامل شود.

برای تنظیم eCDN، با استفاده از On-premises service یک سیاست peering ایجاد کنید تا اطلاعات IP را به صورت دستی با گروه‌های peering مطابقت دهید. اگر از شماره پورت پیش‌فرض ۴۴۳ استفاده نمی‌کنید، می‌توانید شماره پورت را نیز وارد کنید. آدرس اینترنتی (URL) باید با فرمت زیر مطابقت داشته باشد: WEB_SERVICE.example.com:8080 ، که در آن WEB_SERVICE نام سرویس وب شما است.

برای اطلاعات بیشتر در مورد تنظیم سیاست همتاسازی، به پیکربندی گروه‌بندی شبکه مراجعه کنید.