本页面介绍了如何创建 Service Extensions 插件,以便您 使用 Google Cloud 服务实现可扩展性。
此功能处于 Media CDN 的预览版阶段。
如需了解产品概览,请参阅 Service Extensions 概览。
准备工作
启用 Network Services API(如果尚未启用)。
gcloud services enable networkservices.googleapis.com
对于 Media CDN 插件,如果您打算启用日志记录,请启用 Network Actions API。
gcloud services enable networkactions.googleapis.com
创建插件资源
如要创建插件资源,您需要指定包含插件代码的映像,并指定插件的标签和日志记录选项。
控制台
如需创建插件,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Service Extensions 页面。
点击插件 标签页。
点击创建插件 。
在基本信息 部分中,执行以下操作:
对于范围,选择全球或区域级。
如果您将范围设置为区域级,请同时选择相应区域。
输入唯一的插件名称。
名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。
可选:输入简短的插件说明,最多 1024 个字符。
在 Wasm 映像 部分中,执行以下操作:
对于插件版本名称,指定插件版本的名称。
名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。
可选:对于插件版本说明,输入简短的 插件版本说明,最多 1024 个字符。
对于映像网址,输入 具有 Wasm 模块的通用制品或容器映像 在 Artifact Registry 窗格中的网址。使用通用代码库的选项 处于 预览版阶段。
如果您想在 Docker 代码库中指定容器映像,也可以点击选择 进行浏览和选择。Artifact Registry 窗格会显示与当前项目关联的代码库中的文件夹。
如需从其他项目中选择映像, 请确保 Service Extensions 有权访问该映像, 然后点击项目名称旁边的更改。
可选:在插件配置 部分中,如需将 配置数据 与插件相关联,请选中添加插件配置 复选框,然后 选择以下任一选项:
上传插件配置文件 。如果您的文件大小小于 900 KiB 且位于本地驱动器中,请点击浏览 以找到并选择该文件。
从 Artifact Registry 中选择插件配置映像或制品 。输入通用制品或容器映像的网址,该网址具有 Artifact Registry 窗格中的 Wasm 模块。使用通用代码库的选项 处于 预览版阶段。
如需在 Docker 代码库中指定容器映像,也可以点击选择 进行浏览和选择。Artifact Registry 窗格会显示与当前项目关联的代码库中的文件夹。
可选:在标签 部分中,点击添加标签 。然后,在显示的行中,执行以下操作:
- 对于键,输入键名称。
- 对于值,输入该键的值。
您最多可以添加 64 个键值对。如需添加更多键值对,请点击添加标签 。
如需详细了解标签,请参阅 为项目创建和更新标签。
在加密 部分中,选择插件的加密机制。此选项仅适用于区域级插件。
- Google 管理的加密密钥 。使用 Google 默认加密机制加密插件内容 。
- Cloud KMS 密钥 。使用通过 Cloud Key Management Service 创建的 客户管理的加密密钥 加密插件内容。在这种情况下,对于 密钥管理类型,选择 Cloud KMS。然后,选择一个 Cloud KMS 密钥。
可选:在日志记录 部分中,选择启用日志记录 ,然后执行以下操作:
对于采样率,指定一个介于
0和1之间的值。值0表示不存储日志消息。默认值1表示存储所有日志消息。介于0.0和1.0之间的浮点值表示存储一部分日志消息。对于最低日志级别,选择要导出到 Cloud Logging 的插件日志消息的最低 严重级别 。默认值为
Info and higher。
点击创建 。
gcloud
运行
gcloud service-extensions wasm-plugins create命令以创建插件:gcloud service-extensions wasm-plugins create WASM_PLUGIN \ --description=PLUGIN_DESCRIPTION \ --location=LOCATION \ --labels=[LABELS,...] \ --log-config=[LOG_CONFIG,...] \ --image=IMAGE \ --main-version=MAIN_VERSION \ --plugin-config=PLUGIN_CONFIG | --plugin-config-file=PLUGIN_CONFIG_FILE | --plugin-config-uri=PLUGIN_CONFIG_URI \ --kms-key-name=KEY_NAME替换以下内容:
WASM_PLUGIN:插件的 ID 或完全限定名称PLUGIN_DESCRIPTION:插件的说明LOCATION:插件的位置,可以是global或区域LABELS:以英文逗号分隔的键值对形式的标签LOG_CONFIG:插件的日志记录选项。 当enable选项设置为false时,系统不会捕获插件的日志。如需启用日志记录,请将enable选项设置为true。然后,指定以下详细信息:sample-rate:活动日志的采样率,介于0和1之间。值0表示不存储日志消息。默认值1表示存储所有日志消息。介于0.0和1.0之间的浮点值表示存储一部分日志消息。min-log-level:要导出到 Cloud Logging 的插件日志消息的最低 严重级别 。默认值为INFO。
IMAGE:包含存储在 Artifact Registry 代码库中的 Wasm 模块的 制品的 URI。在指定来自其他项目的 容器映像之前,请确保 Service Extensions 有权访问该映像。MAIN_VERSION:要创建并设置为主要(活跃)版本的插件版本的 ID。PLUGIN_CONFIG、PLUGIN_CONFIG_FILE或PLUGIN_CONFIG_URI:可选配置数据,可以分别指定为文本、本地文件或 Artifact Registry 中的容器映像。-
替换以下内容:
PROJECT:包含密钥的项目的 IDLOCATION:密钥的位置KEYRING_NAME:密钥环名称KEY_NAME:密钥名称
如果未指定此选项,则使用 Google 默认加密机制 。
例如:
gcloud service-extensions wasm-plugins create my-plugin \ --description="This is my plugin." \ --log-config=enable=true,sample-rate=0.5,min-log-level=INFO \ --labels=key1=value1,key2=value2 \ --image=...-docker.pkg.dev/my-project/repository/container:tag \ --main-version=v1 \ --plugin-config-file=config.txt如需部署新版本,请使用
gcloud service-extensions wasm-plugins update命令。 指定新的映像和版本名称:gcloud service-extensions wasm-plugins update my-plugin \ --image=...-docker.pkg.dev/my-project/repository/container:tag \ --main-version=v2
如需运行这些插件,您可以配置 Cloud Load Balancing 扩展程序 和 Media CDN 扩展程序。
访问其他项目中的映像
如需从其他项目中选择映像, Service Extensions 服务代理必须有权访问项目代码库 ,并且根据 Wasm 模块的打包方式,对项目拥有以下权限之一:
- 对于通用制品:
artifactregistry.files.download - 对于容器映像:
artifactregistry.repositories.downloadArtifacts
Service Extensions 服务代理的命名方式如下:
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com
将 PROJECT_NUMBER 替换为您的 项目编号。
后续步骤
- 查看 Cloud Load Balancing 插件支持的应用负载平衡器。
- 了解如何使用插件配置 Cloud Load Balancing 边缘扩展程序、 路由扩展程序、 和 流量扩展程序。
- 了解如何将 Media CDN 插件连接到路由。
- 了解如何管理插件。
- 请参阅 Service Extensions 概览。