Registry 模型

Registry 模型部分介绍了 Serverless Registry Model (SRM) 的建设模型,包括了:

元数据规范

Serverless Reigstry 需要获得并存储 Package 以下信息:

数据名类型描述
NameStringPackage名称
TypeStringComponent/Application
VersionStringPackage版本,需要符合主版本号.子版本号.修正版本号格式
PublishTimeNumber发布时间戳(秒)
VersionBodyString版本对应的描述

除了以上基础规范,Serverless Registry 的提供者/组织还可以根据具体需求,存储更多的数据/信息,包括不限于用于鉴权使用的 Package 贡献者id,用户确定 Package 状态的status等;

Registry 规范

Package 开发者和 Serverless 开发者在发布 Package 以及使用 Package 的流程可以简化为:

通过上述流程,可以看到对于 Package 开发者而言,需要按照Serverless Package Model 规范提供相对应的 Package 到 Serverless Registry,而对于 Serverless 开发者而言,则需通过 Serverless Devs 开发者工具 工具中,进行 Package 的下载和使用。在整个过程中,涉及到的核心规范如下:

  • Serverless Registry 在接受 Package 开发者贡献的组件与应用时,接受且只接受标准zip格式的压缩包,且压缩包中包括的代码等内容符合且必须符合符合 Serverless Package Model 规范
  • 对于发布在 Serverless Registry 上的应用和组件,Serverless Registry 需要按照以下规范提供对应 Package 版本查询功能以及相对应的下载功能:
    • 全部版本查询:
      • Method:GET
      • URI:{package-name}/releases
      • Response:
        {
            "tag_name": "1.1.13",
            "created_at": "2021-01-04T07:41:23Z",
            "zipball_url": "https://api.github.com/repos/Serverless-Devs/Serverless-Devs/zipball/1.1.13",
            "body": "- 中文\r\n  - 修复边界条件下临时密钥获取失败的BUG\r\n- English: \r\n  - Fix the bug that the temporary key acquisition fails under boundary conditions"
        }
        
    • 最新版本查询:
      • Method:GET
      • URI:{package-name}/releases/latest
      • Response:
        {
            "tag_name": "1.1.13",
            "created_at": "2021-01-04T07:41:23Z",
            "zipball_url": "https://api.github.com/repos/Serverless-Devs/Serverless-Devs/zipball/1.1.13",
            "body": "- 中文\r\n  - 修复边界条件下临时密钥获取失败的BUG\r\n- English: \r\n  - Fix the bug that the temporary key acquisition fails under boundary conditions"
        }
        
    • Package下载:
      • Method:GET
      • URI:{package-name}/zipball/{version}
      • Response:组件压缩包

除了以上基础规范,Serverless Registry 的提供者/组织还可以根据具体需求,提供 Package 更新,删除以及权限变更等相关的额外能力。

在 GitHub 上编辑本页面 更新时间: Wed, Sep 21, 2022