将插件附加到媒体 CDN 路由

本页面介绍了如何在 Media CDN 路由中配置 Service Extensions 插件。

您可以将媒体 CDN 与 Service Extensions 搭配使用,以向请求-响应处理路径添加自定义代码。这种自定义功能可实现各种轻量级使用场景。

如需了解详情,请参阅 Media CDN 扩展服务概览

准备工作

  1. 创建媒体 CDN 来源
  2. 创建媒体 CDN 服务
  3. 使用 Service Extensions 创建插件

为插件创建 Wasm 操作

创建 Wasm 操作时,您无法使用 Cloud Load Balancing 扩展程序中已在使用的插件。

运行 gcloud alpha service-extensions wasm-actions create 命令,为您的服务扩展插件创建 Wasm 操作:

gcloud alpha service-extensions wasm-actions create WASM_ACTION \
    --wasm-plugin=WASM_PLUGIN \
    --supported-events=[EVENT,...]

替换以下内容:

  • WASM_ACTION:Wasm 操作的 ID 或完全限定名称
  • WASM_PLUGIN:您要将操作附加到的插件的名称
  • EVENT:插件要处理的载荷部分,由以下一个或两个值指示:request-headersresponse-headers。如果未指定,则处理这两个标头。

创建 Wasm 操作可能需要一段时间。

将插件附加到路由

如需在 Media CDN 路由中附加插件,请按以下步骤操作:

  1. 如需将服务的当前配置导出到 YAML 文件,请运行 gcloud edge-cache services export 命令

      gcloud edge-cache services export SERVICE_NAME \
          --destination=FILENAME.yaml
    

    替换以下内容:

    • SERVICE_NAME:媒体 CDN 服务的名称
    • FILENAME:YAML 文件的名称
  2. 使用文本编辑器修改 YAML 文件。

  3. 更新文件中的路由,以添加 wasmAction 标头,如以下示例所示:

      name: SERVICE_NAME
      routing:
        hostRules:
        - hosts:
          - DOMAIN_NAME 
          pathMatcher: routes
        pathMatchers:
        - name: routes
          routeRules:
          - priority: '1'
            description: Route 1
            matchRules:
            - prefixMatch: /plugins
            origin: projects/PROJECT_NUMBER/locations/global/edgeCacheOrigins/ORIGIN_NAME
            routeAction:
              wasmAction: projects/PROJECT_NUMBER/locations/global/wasmActions/WASM_ACTION
    

    替换以下内容:

    • SERVICE_NAME:媒体 CDN 服务的名称
    • DOMAIN_NAME:媒体 CDN 服务的网域
    • PROJECT_NUMBER项目编号
    • ORIGIN_NAME:内容的来源
    • WASM_ACTION:Service Extensions Wasm 操作
  4. 保存 YAML 文件。

  5. 运行 gcloud edge-cache services import 命令

      gcloud edge-cache services import SERVICE_NAME \
          --source=FILENAME.yaml
    

新插件可能需要一段时间才能分发到所有地区。由于插件并非同时交付到所有地区,因此时间可能会因地区而异。

后续步骤