上云无忧 > 文档中心 > 腾讯云 Serverless 应用中心 - 应用管理
Serverless 应用中心
腾讯云 Serverless 应用中心 - 应用管理

文档简介:
简介: 每执行一次 scf deploy,即部署一个 serverless 应用。一个 serverless 应用是由单个或者多个组件实例构成,每个组件对应一个实例。 每个实例都会涉及一个 serverless.yml 文件,该文件定义了组件的一些参数,这些参数在部署时用于生成实例的信息。例如 region,定义了资源的所在区。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

简介

每执行一次 scf deploy,即部署一个 serverless 应用。一个 serverless 应用是由单个或者多个组件实例构成,每个组件对应一个实例。
每个实例都会涉及一个 serverless.yml 文件,该文件定义了组件的一些参数,这些参数在部署时用于生成实例的信息。例如 region,定义了资源的所在区。
单实例应用与多实例应用在项目组织上会有一些差别,如下图所示:

单实例应用

项目中只引入一个组件,部署时只生成一个组件实例,这样的应用为单实例应用。
单实例应用一般不需要关心应用名称配置,如果有需要自定义应用名称,可直接在组件的 serverless.yml 中配置。

多实例应用

项目中引入多个组件,部署时生成多个组件实例,这样的应用为多实例应用。
多实例应用需要自定义应用名称,以保证所有组件在统一的应用下进行管理。一般会把应用名称定义在项目目录的 serverless.yml 中,以便所有的组件继承同一个应用名。

serverless.yml 文件

serverless.yml 文件中定义了应用组织参数及组件 inputs 参数,每次部署时会根据 serverless.yml 文件中的配置信息进行资源的创建、更新和编排。
一份简单的 serverless.yml 文件如下:
		
# serverless.yml
# 应用信息
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} #云函数名称
apigatewayConf:
protocols:
- http
- https
environment: release
yml 文件中配置信息:

应用信息

参数
说明
org
组织信息,默认腾讯云 APPID。保留字段,不建议使用。
app
应用名称,默认与组件信息中的实例名称一致。对于单实例应用和多实例应用 app 参数的定义方式会有不同,详情请参见 部署应用
stage
环境信息,默认为 dev。通过定义不同的 stage,为 serverless 应用开发、测试、发布提供独立的运行环境。详情请参见 环境隔离

组件信息

参数
说明
component
引用 component 的名称,scf registry 查询您可以引入的组件。
name
创建的实例名称,每个组件在部署时将创建一个实例。

参数信息

inputs 下的参数为组件配置参数,不同的组件参数不同。为保证环境隔离,资源唯一,组件资源名称默认会采用 ${name}-${stage}-${app} 格式。

部署应用

单实例应用

serverless.yml 文件中不配置应用名称 app,部署时会默认生成与实例名称 name 相同的 app 应用名称。
例如创建一个 SCF 项目,项目目录如下:
		
scfDemo
|- index.js
└── serverless.yml
其中 serverless.yml 文件配置如下:
		
component: scf
name: myscf
inputs:
src: ./
runtime: CustomRuntime
region: ap-guangzhou
functionName: ${name}-${stage}-${app} #云函数名称
events:
- apigw:
parameters:
endpoints:
- path: /
method: GET
在 scfDemo 目录下执行 scf deploy 进行部署,默认将生成一个 app 为 myscf 的应用,该应用下包含一个叫 myscf 的 SCF 实例。
对于单实例应用项目,一般使用默认应用名称即可。如果要自定义应用名称,可直接在 serverless.yml 中定义,如:
		
app: scfApp #自定义 app 为 scfApp
component: scf
name: myscf
inputs:
src: ./
runtime: CustomRuntime
region: ap-guangzhou
events:
- apigw:
parameters:
endpoints:
- path: /
method: GET
在 scfDemo 目录下执行 scf deploy 进行部署,将生成一个 app 为 scfApp 的应用,该应用下包含一个叫 myscf 的 SCF 实例。

多实例应用

项目包含多个组件,必须给所有组件统一应用名称。一般我们会在项目根目录下定义一个 serverless.yml 文件进行应用名称配置。
例如部署 Vue + Express + PostgreSQL 全栈网站,项目目录如下:
		
fullstack
|- api
| |- scf.js
| |- ...
| └── serverless.yml
|- db
| └── serverless.yml
|- frontend
| |- ...
| └── serverless.yml
|- vpc
| └── serverless.yml
|- scripts
└── serverless.yml
项目目录 fullstack 下的 severless.yml 文件配置了 app:
		
# 项目应用信息
app: fullstack
每个组件目录下的 severless.yml 文件配置了组件信息和参数信息,如 api 目录下的 serverless.yml:
		
#api 配置信息
component: express
name: fullstack-api
inputs:
src:
src: ./
exclude:
- .env
functionName: ${name}-${stage}-${app}
region: ${env:REGION}
runtime: Nodejs10.15
functionConf:
timeout: 30
vpcConfig:
vpcId: ${output:${stage}:${app}:fullstack-vpc.vpcId}
subnetId: ${output:${stage}:${app}:fullstack-vpc.subnetId}
environment:
variables:
PG_CONNECT_STRING: ${output:${stage}:${app}:fullstack-db.private.connectionString}
apigatewayConf:
enableCORS: true
protocols:
- http
- https
说明
旧版本的模板示例中,会把应用名称 app 写到每个组件里,前提必须保证项目下所有组件的应用名称一致,后续不建议此使用方式。
相似文档
  • 前提条件: 了解 快速部署、 了解 Serverless 应用、 了解 账号和权限配置。 开发流程: 一个项目的开发上线流程大致如下:
  • 概述: 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。Serverless 应用的灰度发布是配置云函数别名的流量规则,针对别名中两个不同版本的云函数进行流量规则配置。Serverless Cloud Framework 支持的两种方式别名配置:默认别名和自定义别名。
  • 操作场景: Serverless Cloud Framework 提供了多个基础资源组件,用户可以通过不同组件的结合使用,快速完成云端资源的创建与部署,本教程将指导您如何使用已有组件,构建您自己的多组件 Serverless 应用模板。
  • 由于云函数限制,目前只支持上传小于50MB的代码包,当您的项目过大时,您可以将依赖放在层中而不是部署包中,可确保部署包保持较小的体积。层的具体使用请参考 层管理相关操作。
  • 通过 Serverless Component 快速构建一个 Serverless Web 网站服务后,如果您希望配置自定义域名及支持 HTTPS 的访问,则可以按照本文提供的两种方案快速配置。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部