Skip to content

Serverless Registry CLI (Serverless Devs Registry Component)

License

Notifications You must be signed in to change notification settings

Serverless-Devs/registry-cli

Repository files navigation

Serverless Registry 开发者工具

中文 | English

本工具是一款基于 Serverless Devs Component 的 Serverless Registry 管理工具,通过本工具可以做到:

关于如何开发 Package 可以参考相关的问题:


  1. 关于 Serverless Package 和 Serverless Devs 以及 Serverless Registry的关系,可以参考 SDM 规范文档
  2. 关于什么是 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 的时候,您可以参考我们的最佳实践做一些更有趣的操作,例如如何配置“开发版本”如何进行组件/应用测试如何与流水线进行集成如何进行多人协作等。

登陆功能:login

在对 Registry 进行操作之前,需要有身份校验的逻辑(例如,你只能更新属于你的 Package 等),所以在使用 Registry 功能之前,需要进行登录相关操作。

登陆有两种模式:

  • 模式1:已经拥有了登陆后的token信息,此时可以使用s cli registry login --token <token>直接进行token的配置;
  • 模式2:没有登陆后的token信息,或者还没有注册过 Serverless Registry,此时可以通过s cli registry login直接打开浏览器,按照操作提示进行登录授权,当页面显示如下,即表示登陆成功: 图片alt 此时可以在客户端也可以看到成功的提醒: 图片alt
  • 需要额外注意的是,Serverless Registry 不提供额外的注册功能,只会依靠 Github 授权操作进行用户身份的识别,如果您在后期使用过程中有任何问题欢迎发送邮件到 [email protected] 进行沟通交流。

todo: 由于 China 打开 Github 会受到网络的考验,所以在 login 的环节有优化的空间

发布 Package :publish

此操作需要在完成登陆环节 之后进行。

在符合 Serverless Package 的规范的项目下,可以通过 publish 命令,进行组件的发布。

例如可以直接执行:s cli registry publish

关于 Package 的目录结构以及相关取值和规范,请参考Package 模型 ;

查看 Package 列表:list

此操作需要在完成登陆环节 之后进行。

通过 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

查看某 Package 的版本信息:versions

通过 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

查看某 Package 指定版本信息:detail

通过 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

删除 Package:delete

此操作需要在完成登陆环节 之后进行。

通过 delete 命令可以删除指定 Package 的指定版本。例如在某些情况下,发布版本出现故障,可以通过删除该版本进行回退操作。

此处需要注意的是,版本是唯一存在的,即使在这里被删除了,也不能再发布改版本号的 Package 了。例如,由于某些情况,删除了 demo 组件的 0.0.3 版本,完成删除后,重新发布新的版本时,版本号需要大于 0.0.3;

该命令有两个参数:

  • name-version: Package 的名称和版本,通过@符号进行连接,例如:[email protected]
  • type:Package 类型,取值为 ComponentApplication

操作示例:s cli registry delete --name-version [email protected] --type Component

$ s cli registry delete --name-version [email protected] --type Component
result: Succeed

对 Token 进行更新:retoken

此操作需要在完成登陆环节 之后进行。

如果因为某些情况,导致 Serverless Registry 的 Token 信息泄漏,此时可以通过 retoken 命令进行重置。例如:s cli registry retoken

执行效果:

$ s cli registry retoken
Serverless Registry login token reset succeeded.
End of method: retoken

获取登陆 token

此操作需要在完成登陆环节 之后进行。

可以通过 token 命令,进行 token 信息的获取。

执行效果:

$ s cli registry token
Token: Swf*********At

独立使用 token 的场景:需要在流水线中发布某些 Package , 可以获取该 token,并在流水线中通过s cli registry login --token xxxxx,进行 token 配置等。

搜索指定Package:search

通过 search 命令可以搜索相关的包信息。

该命令有两个参数:

  • keyword: 搜索关键词
  • type:Package 类型,取值为 ComponentApplicationPlugin

操作示例: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 开发最佳实践:


交流社区

您如果有关于错误的反馈或者未来的期待,您可以在 IssuesDiscussions 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 Serverless Devs 的最新动态,您可以通过以下渠道进行:

关注微信公众号:serverless 联系微信小助手:xiaojiangwh 加入钉钉交流群:33947367