Mengonfigurasi ekstensi edge Media CDN

Halaman ini menjelaskan cara mengonfigurasi ekstensi edge Media CDN (CdnEdgeExtension) untuk melampirkan plugin WebAssembly (Wasm) ke Layanan Edge Cache Media CDN (EdgeCacheService).

Resource CdnEdgeExtension terhubung langsung ke deployment EdgeCacheService dan menjalankan satu atau beberapa rantai ekstensi yang diurutkan (extensionChains). Setiap rantai ekstensi dicocokkan menggunakan ekspresi Common Expression Language (CEL) dan dapat berisi maksimum dua resource WasmPlugin yang dirantai.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan ekstensi Media CDN.

Sebelum memulai

  1. Membuat origin Media CDN
  2. Membuat layanan Media CDN
  3. Membuat plugin menggunakan Service Extensions

  4. Saat mengonfigurasi resource CdnEdgeExtension, pertimbangkan bahwa ekstensi edge Media CDN berjalan sebelum sebagian besar fitur Media CDN, termasuk pencocokan rute dan pencarian cache. Hal ini memungkinkan plugin menulis ulang header atau URL untuk memengaruhi pemilihan rute HTTP. Namun, kode plugin tidak dapat memeriksa header kustom yang ditambahkan oleh aturan rute Media CDN atau fitur bawaan. Untuk mengakses properti klien dan koneksi, seperti region klien, alamat IP, atau parameter TLS, konfigurasikan atribut penerusan.

Menyiapkan ekstensi edge Media CDN

Untuk mengonfigurasi resource CdnEdgeExtension dan melampirkan plugin ke deployment EdgeCacheService, lakukan hal berikut:

  1. Tentukan resource CdnEdgeExtension dalam file YAML.

    Contoh berikut memanggil WASM_PLUGIN untuk memproses header permintaan dan header respons saat Anda mengirim permintaan ke media.example.com.

    Catatan: Setelan failOpen: false menampilkan kode error HTTP 500 jika plugin gagal atau waktu habis.

    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
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • SERVICE_NAME: nama layanan Media CDN target (EdgeCacheService)
    • WASM_PLUGIN: nama plugin Anda, seperti my-wasm-plugin-resource

    Untuk mengetahui informasi selengkapnya tentang kolom dalam file YAML, lihat ExtensionChain dalam dokumentasi API.

  2. Gunakan perintah gcloud beta service-extensions cdn-edge-extensions import untuk mengimpor resource CdnEdgeExtension:

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

    Catatan: Mungkin perlu waktu beberapa saat agar konfigurasi plugin baru didistribusikan di semua lokasi.

Batasan

  • Anda hanya dapat melampirkan satu ekstensi edge ke deployment EdgeCacheService.
  • Rantai ekstensi edge dapat berisi maksimal dua plugin.
  • Ekstensi edge Media CDN mendukung peristiwa REQUEST_HEADERS dan RESPONSE_HEADERS. Ekstensi ini tidak mendukung pemrosesan isi atau trailer HTTP.
  • Ekstensi edge Media CDN memungkinkan Anda menggunakan hanya satu ekspresi reguler untuk setiap ekspresi CEL.
  • Nama rantai ekstensi dan ekstensi harus sesuai dengan RFC-1034. Berdasarkan spesifikasi ini, nama dapat berisi hingga 63 karakter alfanumerik huruf kecil atau tanda hubung, harus diawali dengan huruf, dan harus diakhiri dengan huruf atau angka.

Untuk mengetahui informasi selengkapnya tentang batas resource, lihat Kuota dan batas.

Langkah berikutnya