1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# serverless.yml

#应用组织信息
app: '' # 应用名称。留空则默认取当前组件的实例名称为app名称。
stage: '' # 环境名称。默认值是 dev。建议使用${env.STAGE}变量定义环境名称

#组件信息
component: scf # (必选) 组件名称,在该实例中为scf
name: scfdemo # (必选) 组件实例名称。

#组件参数配置
inputs:
name: scfdemo # 云函数名称,默认为 ${name}-${stage}-${app}
namespace: default
role: exRole # 云函数执行角色
# 1. 默认写法,新建特定命名的 cos bucket 并上传
src: ./src
# 2. src 为对象,并且制定忽略上传文件夹 node_modules
# src:
# src: ./code
# exclude:
# - 'node_modules/**'
# 3. 指定 bucket name 和文件的方式,直接上传 cos 中的文件部署云函数
# src:
# bucket: tinatest # bucket name 存储桶名称
# key: 'code.zip' # bucket key 指定存储桶内的文件
# 4. 指定本地文件到 bucket
# src:
# bucket: tinatest # bucket name
# src: # 指定本地路径
handler: index.main_handler #入口
runtime: Nodejs10.15 # 运行环境 默认 Nodejs10.15
region: ap-guangzhou # 函数所在区域
description: This is a function in ${app} application.
memorySize: 128 # 内存大小,单位MB
timeout: 20 # 函数执行超时时间,单位秒
initTimeout: 3 # 初始化超时时间,单位秒
environment: # 环境变量
variables: # 环境变量对象
TEST: value
publicAccess: true # 是否开启公网访问
installDependency: false # 是否在线安装依赖
vpcConfig: # 私有网络配置
vpcId: vpc-xxx # 私有网络的Id
subnetId: subnet-xxx # 子网ID
cfs: # cfs配置
- cfsId: cfs-123
mountInsId: cfs-123
localMountDir: /mnt/
remoteMountDir: /
deadLetter: # 死信队列配置
type: deadLetterType
name: deadLetterName
filterType: deadLetterFilterType
layers: #layer配置
- name: scfLayer # layer名称
version: 1 # 版本
cls: # 函数日志
logsetId: ClsLogsetId
topicId: ClsTopicId
eip: false # 是否开启固定IP
asyncRunEnable: false # 是否启用异步执行(长时间运行)
traceEnable: false # 是否状态追踪
tags: #标签配置
key1: value1
key2: value2 # tags 的key value
ignoreTriggers: false # 是否忽略触发器部署
events: # 触发器
- timer: # 定时触发器
parameters:
# name: timer # 触发器名称,默认timer-${name}-${stage}
qualifier: $DEFAULT # 别名配置
cronExpression: '*/5 * * * * * *' # 每5秒触发一次
enable: true
argument: argument # 额外的参数
- apigw: # api网关触发器,已有apigw服务,配置触发器
parameters:
serviceName: serverless
serviceId: service-8dsikiq6
protocols:
- http
netTypes:
- OUTER
description: the serverless service
environment: release
endpoints:
- path: /users
method: POST
- path: /test/{abc}/{cde}
apiId: api-id
apiName: index
method: GET
description: Serverless REST API
enableCORS: true
responseType: HTML
serviceTimeout: 10
isBase64Encoded: false
isBase64Trigger: false
base64EncodedTriggerRules:
- name: Accept
value:
- image/jpeg
- name: Content_Type
value:
- image/jpeg
param:
- name: abc
position: PATH
required: true
type: string
defaultValue: abc
desc: mytest
- name: cde
position: PATH
required: true
type: string
defaultValue: abc
desc: mytest
function:
isIntegratedResponse: true
functionQualifier: $DEFAULT
usagePlan:
usagePlanId: 1111
usagePlanName: slscmp
usagePlanDesc: sls create
maxRequestNum: 1000
auth:
secretName: secret
secretIds:
- xxx
- apigw: # api网关触发器,无apigw服务,自动创建服务
parameters:
serviceName: apigw-xxxx
protocols:
- http
description: the serverless service
environment: release
endpoints:
- path: /users
method: POST
- cos: # cos触发器
parameters:
qualifier: $DEFAULT # 别名配置
bucket: cli-appid.cos.ap-beijing.myqcloud.com
filter:
prefix: filterdir/
suffix: .jpg
events: 'cos:ObjectCreated:*'
enable: true
- cmq: # CMQ Topic 触发器
parameters:
qualifier: $DEFAULT # 别名配置
name: test-topic-queue
enable: true
filterType: 1 # 消息过滤类型,1为标签类型,2为路由匹配类型
filterKey: # 当 filterType 为1时表示消息过滤标签,当 filterType 为2时表示 Binding Key
- key1
- key2
- ckafka: # ckafka触发器
parameters:
qualifier: $DEFAULT # 别名配置
name: ckafka-xxx
topic: test
maxMsgNum: 999
retry: 10000
offset: latest
timeout: 60
enable: true
- cls: # cls 触发器
parameters:
qualifier: '$DEFAULT' # 别名配置
topicId: 'xxx-228b-42f5-aab5-7f740cc2fb11' # 日志主题 ID
maxWait: 60 # 最长等待时间,单位秒
enable: true
- mps: # mps 触发器
parameters:
qualifier: '$DEFAULT' # 别名配置
type: EditMediaTask # 事件类型
enable: true