31
31
functions :
32
32
insight_poc_fn :
33
33
name : insight-poc-fn
34
- runtime : nodejs18
35
- handler : ${vars.handler}
36
- code : artifacts/artifact.zip
34
+ code :
35
+ runtime : nodejs18
36
+ handler : ${vars.handler}
37
+ path : artifacts/artifact.zip
37
38
memory : 512
38
39
timeout : 10
39
40
environment :
@@ -138,30 +139,100 @@ service: insight-poc-${stage}
138
139
139
140
# # functions
140
141
141
- ` functions` 字段是一个对象,用于定义serverless函数。functions下的每一个子项都是一个方法的定义。function支持的字段有:
142
+ ` functions` 字段是一个对象,用于定义serverless函数。functions下的每一个子项都是一个方法的定义。
143
+
144
+ ` ` ` yaml
145
+ functions:
146
+ insight_poc_fn:
147
+ name: insight-poc-fn
148
+ code:
149
+ path: artifacts/artifact.zip
150
+ handler: index.handler
151
+ runtime: nodejs14
152
+ container:
153
+ image: registry.cn-hangzhou.aliyuncs.com/aliyunfc/runtime/nodejs14:1.0.0
154
+ cmd: npm start
155
+ port: 9000
156
+ memory: 512
157
+ timeout: 10
158
+ gpu: TESLA_8
159
+ storage:
160
+ disk: 512
161
+ nas:
162
+ - mount_path: /mnt/nas
163
+ storage_class: standard
164
+ vpc_id: vpc-123456
165
+ subnet_ids: subnet-123456
166
+ environment:
167
+ NODE_ENV: production
168
+ TEST_VAR: ${vars.testv}
169
+ TEST_VAR_EXTRA: abcds-${vars.testv}-andyou
170
+
171
+ ` ` `
172
+
173
+ function支持的字段有:
142
174
143
175
- **name**: serverless函数的名称
144
176
> 支持的字符集为`a-zA-Z0-9-_`,长度为1-64个字符
145
177
> required: true
146
- - **runtime**: serverless函数的运行时
147
- > 支持的运行时:
148
- nodejs20,nodejs18,nodejs16,nodejs14,nodejs12,nodejs10,nodejs8,python3.10,python3.9,python3,PHP7.2,Java11,.NETCore3.1,Go1.x
149
- - **handler**: serverless函数的处理程序
150
- > required: true
151
- - **code**: serverless函数的代码包相对项根目录的路径
152
- > 当前仅支持zip格式的代码包
153
- > required: true
178
+ - **code**: serverless函数通过源码部署的相关配置(⚠️code和container只能存在一个)
179
+ > required: false
180
+ > - **path**: 压缩后的代码路径, 当前仅支持zip格式的代码包
181
+ > required: true
182
+ > - **handler**: serverless函数的处理程序
183
+ > required: true
184
+ > - **runtime**: 函数运行时
185
+ > required: true
186
+ > 支持的运行时:
187
+ ` nodejs20` ,`nodejs18`,`nodejs16`,`nodejs14`,`nodejs12`,`nodejs10`,`nodejs8`,`python3.10`,`python3.9`,`python3`,`PHP7.2`,`Java11`,`.NETCore3.1`,`Go1.x`
188
+ - **container**: serverless函数通过容器部署的相关配置(⚠️code和container只能存在一个)
189
+ > 阿里云仅支镜像为同账户下的ACR镜像,不支持部署如dockerhub等公共镜像
190
+ > required: false
191
+ > - **image**: 容器镜像
192
+ > 遵循格式: `registry.{{region}}.aliyuncs.com/xxx:tag`(阿里云)
193
+ > - **cmd**: 容器启动命令
194
+ > required: false
195
+ > default: 默认为构建镜像的dockerfile中指定的cmd和entrypoint
196
+ > - **port**: 容器对外提供服务的端口
197
+ > required: true
198
+
199
+
154
200
- **timeout**: serverless函数的超时时间
155
201
> 默认值: 15分钟
156
202
- **memory**: serverless函数的内存大小
157
203
> 默认值: 128MB
204
+ - **gpu**: serverless函数的GPU配置
205
+ > 类型: `enum`
206
+ > required: false
207
+ > 支持的GPU配置: `TESLA_8`, `TESLA_12`,`TESLA_16`, `AMPERE_8`, `AMPERE_12`, `AMPERE_16`,`AMPERE_24`, `ADA_48`(GPU 的配置通过`_`分割型号和内存,前面是GPU的型号,后面是GPU的内存大小)
208
+ > 注意⚠️:阿里云不支持将一个已存在的函数配置为GPU类型,如果需要使用GPU类型的函数,需要删除原有函数并重新创建。
209
+
158
210
- **environment**: serverless函数的环境变量
159
- > 支持的字符集为`a-zA-Z0-9-_`,长度为1-64个字符
211
+ > 支持的字符集为`a-zA-Z0-9-_`,长度为1-64个字符
160
212
> required: false
161
213
- **log**: serverless函数是否开启日志
162
214
> required: false
163
215
> default: false
164
- > 注意: 由于阿里sls创建延迟问题,无法在创建时开启日志,需要stack第一次创建时关闭,等待1~2分钟后开启日志并重新部署。
216
+ > 注意⚠️: 由于阿里sls创建延迟问题,无法在创建时开启日志,需要stack第一次创建时关闭,等待1~2分钟后开启日志并重新部署。
217
+ - **network**: 网络配置
218
+ > 类型: `object`
219
+ > required: false
220
+ - **vpc_id**: 指定serverless函数的VPC ID
221
+ > 类型: `string`
222
+ > required: true
223
+ - **subnet_ids**: 交换机列表,即serverless函数所在的子网
224
+ > 类型: `array`
225
+ > required: true
226
+ - **security_group**: 安全组规则
227
+ > 类型: `object`
228
+ > required: true
229
+ > - **ingress**: 入站规则
230
+ > 类型: `array`
231
+ > required: true
232
+ > 格式为: `协议:IP范围:端口范围` 如`TCP:0.0.0.0/0:80`,`TCP:0.0.0.0/0:1028/1030`。
233
+ > 协议列表: `TCP`, `UDP`, `ICMP`, `ALL`
234
+ > - **egress**: 出站规则, 与入站规则遵循相同的格式,但出站规则为可选项,默认允许所有出站流量
235
+
165
236
166
237
# # events
167
238
@@ -182,7 +253,7 @@ service: insight-poc-${stage}
182
253
> required: true
183
254
- **backend**: 事件的后端,通过方法的名称,指定后端的方法,请求最终有指定的方法进行处理
184
255
> required: true
185
- - **custom_domain **: 事件的自定义域名
256
+ - **domain **: 事件的自定义域名
186
257
> required: false
187
258
- **domain_name**: 自定义域名
188
259
> required: true
@@ -314,16 +385,11 @@ buckets:
314
385
sse_kms_master_key_id: 1234567890
315
386
website:
316
387
code: dist/
317
- domain: example.com
388
+ domain: adminui. example.com
318
389
index: index.html
319
390
error_page: 404.html
320
391
error_code: 404
321
- versioning: ENABLED
322
- lifecycle:
323
- rule:
324
- id: rule1
325
- expiration:
326
- days: 30
392
+
327
393
` ` `
328
394
329
395
bucket支持的字段有 :
@@ -375,20 +441,20 @@ bucket支持的字段有:
375
441
- **rule**: 生命周期规则
376
442
377
443
- security : bucket安全相关配置
378
- - **acl**: 访问控制,配置bucket的访问权限
379
- > 类型: `string`
380
- > required: false
381
- > 默认值: `PRIVATE`
382
- > 支持的访问控制: `PRIVATE`, `PUBLIC_READ`, `PUBLIC_READ_WRITE`
383
- - **force_delete**: 强制删除
384
- > 类型: `boolean`
385
- > required: false
386
- > 默认值: false
387
- > 注意: 强制删除后无法恢复
388
- - **sse_algorithm**: 加密算法
389
- - **sse_kms_master_key_id**: 加密密钥ID
390
- > 类型: `string`
391
- > required: false
392
- > 默认值: null
393
- > 注意: 如果未指定加密密钥ID,则使用默认密钥
444
+ - **acl**: 访问控制,配置bucket的访问权限
445
+ > 类型: `string`
446
+ > required: false
447
+ > 默认值: `PRIVATE`
448
+ > 支持的访问控制: `PRIVATE`, `PUBLIC_READ`, `PUBLIC_READ_WRITE`
449
+ - **force_delete**: 强制删除
450
+ > 类型: `boolean`
451
+ > required: false
452
+ > 默认值: false
453
+ > 注意: 强制删除后无法恢复
454
+ - **sse_algorithm**: 加密算法
455
+ - **sse_kms_master_key_id**: 加密密钥ID
456
+ > 类型: `string`
457
+ > required: false
458
+ > 默认值: null
459
+ > 注意: 如果未指定加密密钥ID,则使用默认密钥
394
460
0 commit comments