Skip to content

Latest commit

 

History

History
221 lines (168 loc) · 10.2 KB

package_dev.md

File metadata and controls

221 lines (168 loc) · 10.2 KB
title description position category
Package开发
Serverless Devs Package开发
6
概述

Package开发文档

注意:

  • Serverless Devs的组件开发和应用开发模版都已经被默认的集成到了Serverless Devs的开发者工具中,Package开发者可以直接使用;
  • Package的开发,需要遵循Serverless Package Model以及相关规范,只有这样Serverless Registry和Serverless Devs开发者工具才能正确识别和使用;
  • 关于应用和组件开发的最佳实践可以参考:

组件开发说明

Serverless Devs 组件开发需要严格遵守 Serverless Package Model 中的 组件模型规范。在组件模型规范中有关于组件模型元数据组件模型代码规范的说明。

🐵 温馨提示,在进行 Serverless Devs 的组件开发时,可能会遇到很多相对来说更为通用的能力,包括不限于:

  • 获取用户的密钥信息
  • 进行更规范的格式化输出
  • 对用户的输入参数进行解析
    ......
    这些内容都可以通过 Serverless Devs 所提供的 Core包 进行提供,更多 Core包 信息,可以参考 Core包的开发文档

Serverless Devs的组件开发案例已经被集成到Serverless Devs命令行工具中,通过对Serverless Devs的命令行工具,可以进行空白组件项目的初始化,开发者只需要执行s init即可看到:

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors (Use arrow keys or type to search)
❯ Alibaba Cloud Serverless 
  AWS Cloud Serverless 
  Tencent Cloud Serverless 
  Baidu Cloud Serverless 
  Dev Template for Serverless Devs 

此时,选择最后的Dev Template for Serverless Devs,并按回车:

$ s init

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors Dev Template for Serverless Devs
? Please select an Serverless-Devs Application (Use arrow keys or type to search)
❯ Application Scaffolding 
  Component Scaffolding 

此时,选择Component Scaffolding,并按回车,即可完成一个完整的Serverless Devs的Component项目的初始化,可以通过命令查看文件树:

$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
.
|____LICENSE
|____.signore
|____example
| |____s.yaml
|____readme.md
|____publish.yaml
|____.gitignore
|____package.json
|____tsconfig.json
|____src
| |____common
| | |____entity.ts
| | |____logger.ts
| |____index.ts

这其中:

目录 含义
LICENSE 项目默认的LICENSE,默认的LICENSE是遵循Apache 2.0开源协议的(推荐)
.signore 项目发布时,可以选择的忽略文件,类似于npm发布是的.npmignore文件
example 该组件对应的测试应用
publish.yaml 项目所必须的文件,Serverless Devs Package的开发识别文档
.gitignore 推送到Github的忽略文件
package.json Node.js的package.json,需要描述清楚组件的入口文件位置
tsconfig.json Typescript的tsconfig.json,用来对TS项目进行描述等
src 用户的代码目录
readme.md 版本的描述,例如当前版本的更新内容等

此时,开发者可以在src下完成业务代码的开发,由于默认的初始化项目是Typescript,所以开发完成业务代码还需要编译成Javascript(可以通过npm run build进行编译),在完成项目编译之后,还需要对项目进行publish.yaml文件的编写。完成之后,即可将项目发不到不同的源,以Github Registry为例,可以在Github创建一个Public的仓库,并将编译后的代码放到仓库,并发布一个版本。此时,就可以通过客户端获取到该应用。

应用开发说明

Serverless Devs 应用开发需要严格遵守 Serverless Package Model 中的 应用模型规范。在应用模型规范中有关于应用模型元数据的说明。

Serverless Devs的组件开发案例已经被集成到Serverless Devs命令行工具中,通过对Serverless Devs的命令行工具,可以进行空白应用项目的初始化,开发者只需要执行s init即可看到:

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors (Use arrow keys or type to search)
❯ Alibaba Cloud Serverless 
  AWS Cloud Serverless 
  Tencent Cloud Serverless 
  Baidu Cloud Serverless 
  Dev Template for Serverless Devs 

此时,选择最后的Dev Template for Serverless Devs,并按回车:

$ s init

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors Dev Template for Serverless Devs
? Please select an Serverless-Devs Application (Use arrow keys or type to search)
❯ Application Scaffolding 
  Component Scaffolding 

此时,选择Application Scaffolding,并按回车,即可完成一个完整的Serverless Devs的Application项目的初始化,可以通过命令查看文件树:

$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
.
|____readme.md
|____version.md
|____publish.yaml
|____src
| |____s.yaml
| |____index.js

这其中:

目录 含义
readme.md 对该组件的描述,或帮助文档信息
version.md 版本的描述,例如当前版本的更新内容等
publish.yaml 项目所必须的文件,Serverless Devs Package的开发识别文档
src 应用所在目录,需要包括s.yaml和相关的应用代码等

此时,开发者可以在src下完成应用的开发,并对项目进行publish.yaml文件的编写。完成之后,即可将项目发不到不同的源,以Github Registry为例,可以在Github创建一个Public的仓库,并将编译后的代码放到仓库,并发布一个版本。此时,就可以通过客户端获取到该应用。

插件开发说明

Serverless Devs 应用开发需要严格遵守 Serverless Package Model 中的 插件模型规范。在插件模型规范中有关于插件模型元数据的说明。

Serverless Devs的组件开发案例已经被集成到Serverless Devs命令行工具中,通过对Serverless Devs的命令行工具,可以进行空白应用项目的初始化,开发者只需要执行s init即可看到:

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors (Use arrow keys or type to search)
❯ Alibaba Cloud Serverless 
  AWS Cloud Serverless 
  Tencent Cloud Serverless 
  Baidu Cloud Serverless 
  Dev Template for Serverless Devs 

此时,选择最后的Dev Template for Serverless Devs,并按回车:

$ s init

🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome

? Hello Serverless for Cloud Vendors Dev Template for Serverless Devs
? Please select an Serverless-Devs Application (Use arrow keys or type to search)
❯ Application Scaffolding 
  Component Scaffolding 
  Plugin Scaffolding 

此时,选择Plugin Scaffolding,并按回车,即可完成一个完整的Serverless Devs的Application项目的初始化,可以通过命令查看文件树:

$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
.
|____LICENSE
|____.signore
|____example
| |____s.yaml
|____readme.md
|____publish.yaml
|____.gitignore
|____package.json
|____src
| |____common
| | |____entity.ts
| | |____logger.ts
| |____index.ts

这其中:

目录 含义
LICENSE 项目默认的LICENSE,默认的LICENSE是遵循Apache 2.0开源协议的(推荐)
.signore 项目发布时,可以选择的忽略文件,类似于npm发布是的.npmignore文件
example 该组件对应的测试案例
publish.yaml 项目所必须的文件,Serverless Devs Package的开发识别文档
.gitignore 推送到Github的忽略文件
package.json Node.js的package.json,需要描述清楚插件的入口文件位置
src 用户的代码目录
readme.md 版本的描述,例如当前版本的更新内容等

此时,开发者可以在src下完成业务代码的开发,由于默认的初始化项目是Typescript,所以开发完成业务代码还需要编译成Javascript(可以通过npm run build进行编译),在完成项目编译之后,还需要对项目进行publish.yaml文件的编写。完成之后,即可将项目发不到不同的源,以Github Registry为例,可以在Github创建一个Public的仓库,并将编译后的代码放到仓库,并发布一个版本。此时,就可以通过客户端获取到该应用。