本页面介绍了如何创建 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 控制台中,前往服务扩展程序页面。
点击插件标签页。
点击创建插件。
在基本信息部分,执行以下操作:
对于范围,选择全球或区域级。
如果您将范围设置为区域级,请同时选择相应区域。
输入唯一的插件名称。
名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。
可选:输入有关插件的简短说明,最多可使用 1024 个字符。
在 Wasm 映像部分中,执行以下操作:
对于插件版本名称,请指定插件版本的名称。
名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。
可选:对于插件版本说明,输入有关插件版本的简短说明,最多可使用 1024 个字符。
对于映像网址,请输入 Artifact Registry 窗格中包含 Wasm 模块的通用制品或容器映像的网址。使用通用代码库的选项处于预览版阶段。
如果您想指定 Docker 仓库中的容器映像,也可以点击选择进行浏览并选择。Artifact Registry 窗格会显示与当前项目关联的代码库中的文件夹。
如需选择其他项目中的映像,请确保服务扩展程序有权访问该映像,然后点击项目名称旁边的更改。
可选:在插件配置部分,如需将配置数据与插件相关联,请选中添加插件配置复选框,然后选择以下任一选项:
上传插件配置文件。如果文件大小小于 900 KiB 且位于本地硬盘中,请点击浏览以找到并选择该文件。
从 Artifact Registry 中选择插件配置映像或制品。在“Artifact Registry”窗格中,输入包含 Wasm 模块的通用制品或容器映像的网址。使用通用代码库的选项处于预览版阶段。
如需指定 Docker 代码库中的容器映像,您也可以点击选择进行浏览并选择相应映像。Artifact Registry 窗格会显示与当前项目关联的代码库中的文件夹。
可选:在标签部分中,点击添加标签。然后,在显示的行中,执行以下操作:
- 在键中,输入键名称。
- 对于值,输入该键的值。
您最多可以添加 64 个键值对。如需添加更多键值对,请点击添加标签。
如需详细了解标签,请参阅为项目创建和更新标签。
可选:在日志记录部分,选择启用日志记录,然后执行以下操作:
对于采样率,请指定一个介于
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替换以下内容:
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。在指定其他项目中的容器映像之前,请确保服务扩展程序有权访问该映像。MAIN_VERSION:要创建并设为主要(有效)版本的插件版本的 IDPLUGIN_CONFIG、PLUGIN_CONFIG_FILE或PLUGIN_CONFIG_URI:可选的配置数据,可以分别指定为文本、本地文件或 Artifact Registry 中的容器映像
例如:
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 边缘扩展程序、路由扩展程序和流量扩展程序。
- 了解如何将媒体 CDN 插件附加到路由。
- 了解如何管理插件。
- 请参阅 Service Extensions 概览。