הגדרת תוסף קצה ב-Media CDN

בדף הזה מוסבר איך להגדיר תוספי קצה של Media CDN (CdnEdgeExtension) כדי לצרף פלאגינים של WebAssembly‏ (Wasm) לשירותי שמירה במטמון קצה של Media CDN (EdgeCacheService).

משאב CdnEdgeExtension מתחבר ישירות לפריסה של EdgeCacheService ומריץ שרשרת אחת או יותר של תוספים מסודרים (extensionChains). כל שרשרת תוספים מותאמת באמצעות ביטויי Common Expression Language‏ (CEL) ויכולה להכיל עד שני משאבי WasmPlugin משורשרים.

מידע נוסף זמין במאמר סקירה כללית על תוספים של Media CDN.

לפני שמתחילים

  1. יצירת מקור ב-Media CDN
  2. יצירת שירות Media CDN
  3. יצירת פלאגין באמצעות Service Extensions

  4. כשמגדירים משאב CdnEdgeExtension, חשוב לזכור שהתוספים של Media CDN Edge פועלים לפני רוב התכונות של Media CDN, כולל התאמת מסלולים וחיפוש במטמון. כך הפלאגין יכול לשכתב כותרות או כתובות URL כדי להשפיע על ניתוב ה-HTTP. עם זאת, קוד הפלאגין לא יכול לבדוק כותרות בהתאמה אישית שנוספו על ידי כללי המסלול של Media CDN או תכונות מובנות. כדי לגשת למאפייני לקוח וחיבור, כמו אזור הלקוח, כתובת ה-IP או פרמטרים של TLS, צריך להגדיר מאפייני העברה.

הגדרת התוסף של Media CDN בקצה הרשת

כדי להגדיר משאב CdnEdgeExtension ולצרף פלאגינים לפריסה של EdgeCacheService:

  1. מגדירים את המשאב CdnEdgeExtension בקובץ YAML.

    בדוגמה הבאה, הפונקציה WASM_PLUGIN מופעלת כדי לעבד את הכותרות של הבקשות והתגובות כששולחים בקשה אל media.example.com.

    הערה: ההגדרה failOpen: false מחזירה קוד שגיאת HTTP‏ 500 אם הפלאגין נכשל או אם הזמן הקצוב לתפוגה חלף.

    cat >cdn-edge-extension.yaml <<EOF
    edgeCacheServices:
    - projects/PROJECT_ID/locations/global/edgeCacheServices/SERVICE_NAME
    extensionChains:
    - name: "edge-plugin-chain"
      matchCondition:
        celExpression: 'request.host == "media.example.com"'
      extensions:
      - name: "auth-and-header-plugin"
        service: projects/PROJECT_ID/locations/global/wasmPlugins/WASM_PLUGIN
        failOpen: false
        supportedEvents:
        - REQUEST_HEADERS
        - RESPONSE_HEADERS
        forwardAttributes:
        - request.method
        - request.host
        - request.path
        - source.client_region
    EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • ‫SERVICE_NAME: השם של שירות היעד של Media CDN (EdgeCacheService)
    • ‫WASM_PLUGIN: שם הפלאגין, למשל my-wasm-plugin-resource

    מידע נוסף על השדות בקובץ ה-YAML מופיע בקטע ExtensionChain במאמרי העזרה של ה-API.

  2. משתמשים בפקודה gcloud beta service-extensions cdn-edge-extensions import כדי לייבא את המשאב CdnEdgeExtension:

    gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \
       --source=cdn-edge-extension.yaml \
       --location=global
    

    הערה: יכול להיות שיעבור זמן מה עד שההגדרות החדשות של הפלאגין יופצו לכל המיקומים.

מגבלות

  • אפשר לצרף רק תוסף קצה אחד לפריסה של EdgeCacheService.
  • שרשרת של תוספי Edge יכולה להכיל עד שני פלאגינים.
  • תוספי הקצה של Media CDN תומכים באירועים מסוג REQUEST_HEADERS ו-RESPONSE_HEADERS. התוספים האלה לא תומכים בעיבוד של גוף או טריילר של HTTP.
  • בתוספי קצה של Media CDN אפשר להשתמש רק בביטוי רגולרי אחד לכל ביטוי CEL.
  • השמות של שרשראות התוספים והתוספים צריכים להיות תואמים ל-RFC-1034. לפי המפרט הזה, השמות יכולים להכיל עד 63 תווים אלפאנומריים קטנים או מקפים, והם חייבים להתחיל באות ולהסתיים באות או במספר.

מידע נוסף על מגבלות של משאבים זמין במאמר מכסות ומגבלות.

המאמרים הבאים