将插件附加到媒体 CDN 路由

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

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

如需了解详情,请参阅 媒体 CDN 扩展程序概览

准备工作

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

为插件创建 Wasm 操作

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

如需为 Service Extensions 插件创建 Wasm 操作,请运行 gcloud alpha service-extensions wasm-actions create 命令

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 操作可能需要一些时间。

将插件附加到路由

如需在媒体 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
    

新插件可能需要一些时间才能分发到所有位置。由于插件不会同时传送到所有位置,因此不同位置所需的时间可能会有所不同。

后续步骤