本工具是一款基于 Serverless Devs Component 的 Serverless Registry 管理工具,通过本工具可以做到:
- 登陆 Serverless Registry
- 发布 Package 到默认的 Serverless Registry 平台
- 查看当前登陆账号发布过的 Package
- 查看某个 Package 的版本信息
- 查看某个 Package 指定版本信息
- 删除某个指定版本的 Package
- 对登陆 token 进行更新
- 获取登陆 token
- 搜索指定Package
关于如何开发 Package 可以参考相关的问题:
- 关于 Serverless Package 和 Serverless Devs 以及 Serverless Registry的关系,可以参考 SDM 规范文档
- 关于什么是 Serverless Registry 以及 Serverless Registry 模型规范,可以参看 SRM 规范文档
- 需要额外说明的是,本工具仅支持将 Package 发布到默认的 Registry (registry.devsapp.cn/simple),如果想要发布到其他的 Registry,可以参考:
- 如果是 Github 或者 Gitee 源,只需要创建一个仓库,发布一个版本即可,例如在 Github 的 devsapp 组织下创建了一个 demo 的仓库,并发布了一个 Release,此时就可以直接切换源到 Github 源 ,并且将组件写成
组织名/仓库名
即可,例如devsapp/demo
,系统就可以自动检测并加载相关组件;- 如果是其他符合 SRM 规范 的 Registry,可以根据提供该 Registry 的平台进行相关工具的确定;
⚠️ :在使用 Registry 的时候,您可以参考我们的最佳实践做一些更有趣的操作,例如如何配置“开发版本”、如何进行组件/应用测试、如何与流水线进行集成、如何进行多人协作等。
在对 Registry 进行操作之前,需要有身份校验的逻辑(例如,你只能更新属于你的 Package 等),所以在使用 Registry 功能之前,需要进行登录相关操作。
登陆有两种模式:
- 模式1:已经拥有了登陆后的
token
信息,此时可以使用s cli registry login --token <token>
直接进行token
的配置; - 模式2:没有登陆后的
token
信息,或者还没有注册过 Serverless Registry,此时可以通过s cli registry login
直接打开浏览器,按照操作提示进行登录授权,当页面显示如下,即表示登陆成功: 此时可以在客户端也可以看到成功的提醒:
- 需要额外注意的是,Serverless Registry 不提供额外的注册功能,只会依靠 Github 授权操作进行用户身份的识别,如果您在后期使用过程中有任何问题欢迎发送邮件到 [email protected] 进行沟通交流。
todo: 由于 China 打开 Github 会受到网络的考验,所以在 login 的环节有优化的空间
此操作需要在完成登陆环节 之后进行。
在符合 Serverless Package 的规范的项目下,可以通过 publish
命令,进行组件的发布。
例如可以直接执行:s cli registry publish
关于 Package 的目录结构以及相关取值和规范,请参考Package 模型 ;
此操作需要在完成登陆环节 之后进行。
通过 list
命令可以查看当前登陆到 Serverless Registry 账号所发布的组件,例如:s cli registry list
:
$ s cli registry list
- package: ros-test
description: 通过阿里云 ROS 部署项目
version: 0.0.10
zipball_url: https://registry.devsapp.cn/simple/ros-test/zipball/0.0.10
- package: fc-core
description: FC公共组件
version: 0.0.7
zipball_url: https://registry.devsapp.cn/simple/fc-core/zipball/0.0.7
- package: fc
description: 阿里云函数计算基础组件
version: 0.1.38
zipball_url: https://registry.devsapp.cn/simple/devsapp/fc/zipball/0.1.38
通过 versions
命令可以查看指定 Package 的有效版本信息。
该命令有一个参数:
name
: 表示 Package 名字
操作示例:s cli registry versions --name fc
:
$ s cli registry versions --name fc
PackageName: fc
Versions:
- tag_name: 0.1.38
published_at: '2022-01-18T03:32:08.511Z'
zipball_url: https://registry.devsapp.cn/simple/fc/zipball/0.1.38
- tag_name: 0.1.37
published_at: '2022-01-07T07:57:17.327Z'
zipball_url: https://registry.devsapp.cn/simple/fc/zipball/0.1.37
- tag_name: 0.1.36
published_at: '2022-01-04T13:53:16.579Z'
zipball_url: https://registry.devsapp.cn/simple/fc/zipball/0.1.36
- tag_name: 0.1.35
published_at: '2021-12-30T07:30:11.873Z'
zipball_url: https://registry.devsapp.cn/simple/fc/zipball/0.1.35
通过 detail
命令可以查看指定版本 Package 的信息。
该命令有一个参数:
name-version
: Package 的名称和版本,通过@
符号进行连接,例如:[email protected]
操作示例:s cli registry detail --name-version [email protected]
:
$ s cli registry detail --name-version [email protected]
tag_name: 0.0.1
published_at: '2022-01-21T03:58:55.316Z'
zipball_url: https://registry.devsapp.cn/simple/fc-builda/zipball/0.0.1
此操作需要在完成登陆环节 之后进行。
通过 delete
命令可以删除指定 Package 的指定版本。例如在某些情况下,发布版本出现故障,可以通过删除该版本进行回退操作。
此处需要注意的是,版本是唯一存在的,即使在这里被删除了,也不能再发布改版本号的 Package 了。例如,由于某些情况,删除了 demo 组件的 0.0.3 版本,完成删除后,重新发布新的版本时,版本号需要大于 0.0.3;
该命令有两个参数:
name-version
: Package 的名称和版本,通过@
符号进行连接,例如:[email protected]
type
:Package 类型,取值为Component
或Application
操作示例:s cli registry delete --name-version [email protected] --type Component
$ s cli registry delete --name-version [email protected] --type Component
result: Succeed
此操作需要在完成登陆环节 之后进行。
如果因为某些情况,导致 Serverless Registry 的 Token 信息泄漏,此时可以通过 retoken
命令进行重置。例如:s cli registry retoken
执行效果:
$ s cli registry retoken
Serverless Registry login token reset succeeded.
End of method: retoken
此操作需要在完成登陆环节 之后进行。
可以通过 token
命令,进行 token
信息的获取。
执行效果:
$ s cli registry token
Token: Swf*********At
独立使用 token
的场景:需要在流水线中发布某些 Package , 可以获取该 token
,并在流水线中通过s cli registry login --token xxxxx
,进行 token
配置等。
通过 search
命令可以搜索相关的包信息。
该命令有两个参数:
keyword
: 搜索关键词type
:Package 类型,取值为Component
或Application
,Plugin
操作示例:s cli registry search --type Plugin
$ s cli registry search --type plugin
-
name: core
description: Serverless Devs Demo
version:
tag_name: dev
published_at: 2022-03-27T10:13:40.131Z
zipball_url: https://registry.devsapp.cn/simple/core/zipball/dev
-
name: fc-package
description: demo
version:
tag_name: 0.0.3
published_at: 2022-01-17T09:07:04.315Z
zipball_url: https://registry.devsapp.cn/simple/fc-package/zipball/0.0.3
Package 开发最佳实践:
您如果有关于错误的反馈或者未来的期待,您可以在 Issues 和 Discussions 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 Serverless Devs 的最新动态,您可以通过以下渠道进行:
关注微信公众号:serverless |
联系微信小助手:xiaojiangwh |
加入钉钉交流群:33947367 |