操作场景
完成 Serverless Framework 安装后,您可以参考本文档初始化项目模板,并构建多组件应用。
前提条件
操作步骤
初始化项目模板
可以通过以下指令,快速初始化一个示例项目,并在此基础上进行改造开发:
通过该指令,我们在本地快速构建了一个基本的函数应用,目录结构如下:
.
├── serverless.yml
└── src
└── index.js
进入该目录,可以在示例模板的基础上进行项目的开发。
说明:
sls init
支持快速初始化多个项目模板,请通过 sls registry
查看所有支持的项目模板。
构建多组件应用
Serverless Framework 提供了多个基础资源组件,用户可以通过不同组件的结合使用,快速完成云端资源的创建与部署,无需在控制台手动操作(参考 基础组件列表与配置方式)。 此处以部署一个使用 COS 触发器触发的函数项目为例,教您如何在项目中引入多个组件,并快速完成部署,步骤如下:
1. 调整项目目录结构,新建 COS 文件夹,并在该目录下完成 COS 组件的配置文件 serverless.yml
的编写,调整后的目录结构:
.
├── src
│ ├── serverless.yml
│ └── index.js
├── cos
│ └── serverless.yml
└── .env
app: appDemo
stage: dev
component: cos
name: cosdemo
inputs:
bucket: my-bucket
region: ap-guangzhou
2. 修改 SCF 项目的 yml 配置文件,在触发器配置部分按以下语法引用 COS 组件的部署结果:
app: appDemo
stage: dev
component: scf
name: scfdemo
inputs:
...
events:
- cos:
parameters:
bucket: ${output:${stage}:${app}:cosdemo.bucket}
注意:
同一个项目内部署多个组件实例时,需要保证每个项目的 app
、stage
参数相同,否则无法成功引用。
3. 在项目根目录下,执行 sls deploy
,即可完成 COS 桶的创建,并将 COS 组件的输出作为 SCF 组件的输入完成触发器的配置。
变量引用说明
serverless.yml
支持多种方式引用变量:
Serverless 基本参数引用
在 inputs
字段里,支持直接引用 Serverless 基本参数配置信息,引用语法为:${org}
、${app}
。
环境变量引用
在 serverless.yml
中,可以直接通过 ${env}
的方式,直接引用环境变量配置(包含 .env 文件中的环境变量配置,以及手动配置在环境中的变量参数)。
例如,通过${env:REGION}
,引用环境变量 REGION。
引用其它组件输出结果
如果希望在当前组件配置文件中引用其他组件实例的输出信息,可以通过如下语法进行配置:${output:[app]:[stage]:[instance name].[output]}
示例 yml:
app: demo
component: scf
name: rest-api
stage: dev
inputs:
name: ${stage}-${app}-${name}
region: ${env:REGION}
vpcName: ${output:prod:my-app:vpc.name}
vpcName: ${output:${stage}:${app}:vpc.name}
本页内容是否解决了您的问题?