Serverless作为一种新的开发模式,吸引我们众多开发者想一探究竟,然而现在Serverless开发缺乏相关的文档指引,而不能很好的完成开发、调试和部署,接下来我们就尝试一起探讨下如何开发,部署一个Serverless实践之路。
一个 Serverless 应用是由单个或者多个组件实例构成的,每一个组件都会有一个yaml文件,该文件定义了组件的一些参数,这些参数在部署的时候用于生成实例的一些信息。例如 region 参数,定义了资源的所在区。
组织是在Servless应用上层的概念,主要是为了管理。例如,一个公司会有不同部门的开发者进行Servless应用开发,设置不同的组织名称,方便做后期的权限管理。
示例:开发一个 express 应用,最基本的是引入 express 组件,业务中间可能会涉及到其他一些云产品(如对象存储 COS),所以整个应用目录如下:
serverless.yml 文件中定义了应用组织描述及组件 inputs 参数,每次部署时会根据 serverless.yml 文件中的配置信息进行资源的创建、更新和编排。
一份简单的 serverless.yml 文件如下:
# serverless.yml
org: xxx-department # 用于记录组织信息,默认为您的腾讯云 APPID
app: expressDemoApp # 应用名称,默认为与组件实例名称
stage: ${env:STAGE} # 用于开发环境的隔离,默认为 dev
component: express # (必填) 引用 component 的名称,当前用到的是 express-tencent 组件
name: expressDemo # (必填) 组件创建的实例名称
inputs:
src:
src: ./
exclude:
- .env
region: ap-guangzhou
runtime: Nodejs10.15
functionName: ${name}-${stage}-${app}-${org} #云函数名称
apigatewayConf:
protocols:
- http
- https
environment: release
yml 文件中的配置信息如下图所示:
本文将以 Tencent-Express 组件部署一个 Express 网站为例,模拟 Serverless Framework 开发项目、管理项目和部署发布上线全流程。
一个项目开发流程大致如下:
1、创建一个express 项目
,修改 yml 文件为以下内容:
#serverless.yml
org: xxx-department # 用于记录组织信息,默认为您的腾讯云appid
app: expressDemoApp # 应用名称,默认为与组件实例名称
stage: ${env:STAGE} # 用于开发环境的隔离,默认为dev
component: express # (必填) 引用 component 的名称,当前用到的是 express-tencent 组件
name: expressDemo # (必填) 组件创建的实例名称
inputs:
src:
src: ./
exclude:
- .env
region: ap-guangzhou
runtime: Nodejs10.15
funcitonName: ${name}-${stage}-${app}-${org} #云函数名称
apigatewayConf:
protocols:
- http
- https
environment: release
2、在项目根目录下的.env 文件
中配置:
TENCENT_SECRET_ID=xxxxxxxxxx #您账号的 SecretId
TENCENT_SECRET_KEY=xxxxxxxx #您账号的 SecretKey
STAGE=prod #STAGE为prod环境,也可以sls deploy --stage=prod 参数传递的方式设置
3、执行sls deploy
部署成功后,访问生成的 url 链接,效果如下:
创建远程仓库(示例链接),将项目代码提交到远程 master 分支。同时创建 testing、dev。此时三个分支的代码在同一个版本上(假设为版本0)。
以上就是一个完整的Serverless环境初始化、开发及部署一个完整的过程,如果大家也遇到类似的问题,可以一起探讨下。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。