Serverless 应用中心 构建应用

完成 Serverless Cloud Framework 安装后,可以以参考这篇档初始化项目模板,并构建多组件应用。

相关产品
Serverless 应用中心 产品页,含版本规格、价格与购买入口。

一、前提条件

已经安装 Serverless Cloud Framework。操作详情请参见 安装 Serverless Cloud Framework。

二、初始化项目模板

可以通过以下指令,快速初始化一个示例项目,并在此基础上进行改造开发:

scf init scf-starter

通过该指令,我们在本地快速构建了一个基本的函数应用,目录结构如下:

.├── serverless.yml # 配置文件│└── index.js # 入口函数

进入该目录,可以在示例模板的基础上进行项目的开发。

注意:说明:

注意:scf init 支持快速初始化多个项目模板,请通过 scf registry查看所有支持的项目模板。

三、构建多组件应用

Serverless Cloud Framework 提供了多个基础资源组件,用户可以通过不同组件的结合使用,快速完成云端资源的创建与部署,无需在控制台手动操作(请参见 基础组件列表与配置方式)。

此处以部署一个使用 COS 触发器触发的函数项目为例,教你如何在项目中引入多个组件,并快速完成部署,步骤如下:

1. 调整项目目录结构,新建 COS 文件夹,并在该目录下完成 COS 组件的配置文件 serverless.yml 的编写,调整后的目录结构:

.├── src│ ├── serverless.yml # 函数配置文件│ └── index.js # 入口函数├── cos│ └── serverless.yml # 对象存储 COS 桶配置文件└── serverless.yml # app配置文件└── .env # 环境变量文件

COS 组件的 yml 文件示例如下,全量配置文件请参见 COS 组件全量配置。

app: appDemostage: devcomponent: cosname: cosdemoinputs: bucket: my-bucket region: ap-guangzhou

2. 修改 src 下的 Serverless.yml 配置文件,在触发器配置部分按以下语法引用 COS 组件的部署结果:

app: appDemostage: devcomponent: scfname: scfdemoinputs: … events: – cos: # cos 触发器 parameters: bucket: ${output:${stage}:${app}:cosdemo.cosOrigin} events: 'cos:ObjectCreated:*' enable: true

注意:同一个项目内部署多个组件实例时,需要保证每个项目的 app、stage 参数相同,否则无法成功引用。

3. 修改根目录下的Serverless.yml 配置文件,使用如下配置:

app: appDemo

4. 在项目根目录下,执行 scf 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: democomponent: scfname: rest-apistage: devinputs: name: ${stage}-${app}-${name} # 命名最终为 "acme-prod-ecommerce-rest-api" region: ${env:REGION} # 环境变量中指定的 REGION= 信息 vpcName: ${output:prod:my-app:vpc.name} # 获取其他组件中的输出信息 vpcName: ${output:${stage}:${app}:vpc.name} # 上述方式也可以组合使用

赞 (0)
上一篇 4天前
下一篇 4天前