跳转至

脚本市场基本操作

本文档主要介绍「脚本市场」的基本操作。

请始终使用最新版 DataFlux Func 进行操作

从 DataFlux Func 2.x 开始,已全面启用新版脚本市场,旧版脚本市场不再维护

1. 背景

DataFlux Func 由于其可编程特性,用户可以通过自行编写脚本实现各式各样的功能需求。

而对于一些具有较强通用性的程序解决方案,DataFlux Func 提供了「脚本市场」功能,允许将脚本集发布至脚本市场,供其他 DataFlux Func 直接安装,方便功能代码的分发,以及及时收取更新。

除了 DataFlux Func 官方维护的脚本市场,用户也可以通过 DataFlux Func 自行搭建脚本市场,在其组织内部分发代码(即私有市场)。

从 DataFlux Func 2.x 开始,脚本市场作为一项正式功能提供,不再需要从「实验性功能」中开启。

直接在顶部导航中点击「脚本市场」即可进入脚本市场列表页面。

2. 官方脚本市场

默认情况下,DataFlux Func 不包含任何脚本市场。

为了方便用户接入官方脚本市场,在脚本市场列表中,点击「添加官方脚本市场」即可直接创建官方脚本市场,无需任何额外配置。

3. 自建脚本市场

除了官方脚本市场,DataFlux Func 可同时搭建、接入多个不同的脚本市场,满足更加复杂的场景。

脚本市场基于外部系统实现,目前支持的脚本市场类型如下:

类型 说明 支持的外部系统
git 基于 git 库的脚本市场。
发布脚本通过向 git 库提交代码实现
查看、安装脚本通过从 git 库中拉取并读取数据实现Gitee
Gitlab(SaaS 或自建)
Github
BitBucket
自建 gitea
自建 gogs
阿里云 OSS 基于阿里云 OSS 的脚本市场。
发布脚本通过向阿里云 OSS 上传文件实现
查看、安装脚本通过从阿里云 OSS 下载文件实现
阿里云 OSS
HTTP 服务 基于 HTTP 服务的脚本市场。
查看、安装脚本通过从 HTTP 服务下载文件实现
此类型的脚本市场不支持发布脚本
各类 HTTP 静态服务
阿里云 OSS 公共读

基于 git、阿里云 OSS 的脚本市场,在发布、查看、安装脚本时,都需要在创建脚本市场时配置了认证信息(如用户名、密码),且保证具有对应的读写权限

3.1 添加自建脚本市场

在「脚本市场」列表页面,点击「添加」即可进入脚本市场添加页面。

填写所需字段后保存,即可完成脚本市场的添加。

如当前 DataFlux Func 作为脚本管理方,请开启「管理此脚本市场」选项。

补全用于 git 提交的用户信息

由于 git 提交时需要指定用户名称和邮箱,因此,当作为脚本管理方创建基于 git 的脚本市场时,系统会自动提示为当前用户补全用户信息(名称和邮箱)。

由于 git 本身并没有用户系统,此处补全的信息会直接作为 git commit 中的信息。理论上可以随意填写,但一般建议填写对应平台注册的邮箱,避免不必要的误会

3.2 发布脚本

在添加脚本市场时,如指定了「管理此脚本市场」,则当前 DataFlux Func 会作为管理方来接入脚本市场。

作为管理方,可以发布本地已有的脚本集到脚本市场,也可以删除脚本市场中已经发布的脚本集。

3.3 安装脚本

在添加脚本市场时,如不指定「管理此脚本市场」,则当前 DataFlux Func 会作为订阅方来接入脚本市场。

作为订阅方,可以从脚本市场安装脚本集。

4. 脚本集更新提示

在通过脚本市场安装脚本集后,如果脚本市场的管理方更新了此脚本集,那么订阅方侧会在界面显示更新提示,方便用户了解那些脚本存在更新。

5. 脚本市场主页

2.2.0 及以后版本可用

当作为脚本市场的管理方时,可以额外为脚本市场配置「主页 URL」,作为脚本市场用户的介绍、文档等入口。

配置了「主页 URL」的脚本市场,在脚本市场列表列表页面会显示主页跳转按钮,用户可以通过此按钮跳转至所配置的地址。

脚本市场主页为脚本市场管理方自行搭建的网站,管理方可以根据自己需要自行搭建符合自身要求的站点

X. 注意点

在安装、使用从「脚本市场」安装的脚本集时,请注意以下几点:

从 2.x 升级到 2.2.x 及以后版本

2.2.0 及以后版本可用

在之前的版本(2.0.0 ~ 2.1.1)中,脚本市场在本地存储数据时,会按照目标源生成目录结构。

已一个基于阿里云 OSS 的脚本市场为例:

Text Only
1
2
OSS 地址:                        oss://my_bucket/folder_1/folder_2/folder_3/
本地存储位置: script-market/aliyun-oss/my_bucket/folder_1/folder_2/folder_3/

但上述做法存在几个问题:

  1. 目录名、路径过长
  2. 创建 2 个相同地址的脚本市场时,导致本地目录冲突

因此,我们在 2.2.0 版本开始修改了本地存储的目录,改为如下方式:

Text Only
1
2
OSS 地址:     oss://my_bucket/folder_1/folder_2/folder_3/
本地存储位置: script-market/aliyun-oss/{脚本市场 ID}/

因上述修改,在升级到 2.2.0 之后,已经创建的基于 git 的脚本市场可能存在无法进入脚本集列表的问题。

要修复上述问题,可以删除脚本市场后重新添加。

对于脚本市场管理方,请同时删除远端存储根目录中的 TOKEN 文件后,重新以「管理此脚本市场」方式添加

基于 git 托管平台的脚本市场

对于搭建在类似 Gitlab、Github、Gitee 等 git 托管平台的脚本集,请参考下表确定:

git 库类型 DataFlux Func 角色 是否需要
填写 git 托管平台用户名、密码
是否需要
在 git 托管平台中此 git 库的管理权
公开 管理方
公开 订阅方
私有 管理方、订阅方

安装的脚本集可以修改

安装后的脚本集与用户自行创建的脚本集并无本质区别区别。

用户可以根据自己需要进行修改定制,系统对此并没有任何限制。

修改脚本集后,如此脚本集在脚本市场有更新,默认会禁止升级,防止用户的修改内容丢失(可以通过强制模式强制升级)

存在相同 ID 的脚本集

如果脚本市场中脚本集 ID 与本地脚本集 ID 相同,那么此脚本集默认会禁止安装(可以通过强制模式强制安装)。

此外,如果接入了多个不同的脚本市场且存在相同 ID 的脚本集,那么一旦安装了其中一个脚本市场脚本集,另一个脚本市场中相同 ID 的脚本集默认将无法安装(可以通过强制模式强制安装)。

如果遇到此类有关相同 ID 的脚本集问题,可使用脚本集的「克隆」功能,将 ID 重复的脚本集克隆到另一个 ID