Parameters 规范
Parameters 参数是 Publish.yaml 中用来描述 yaml 的相关参数,严格遵守Json Schema规范标准
默认数据类型
string
完整的描述为
region:
title: 地域
type: string
default: cn-hangzhou
description: 创建应用所在的地区
enum:
- cn-beijing
- cn-hangzhou
- cn-shanghai
- cn-qingdao
- cn-zhangjiakou
- cn-huhehaote
- cn-shenzhen
- cn-chengdu
- cn-hongkong
- ap-southeast-1
- ap-southeast-2
- ap-southeast-3
- ap-southeast-5
- ap-northeast-1
- eu-central-1
- eu-west-1
- us-west-1
- us-east-1
- ap-south-1
enum代表枚举值,用户无需手动输入,直接选择
-
在cli 的表现形式为:
-
在网页端表现形式为
boolean
完整的描述为
internetAccess:
type: boolean
title: 允许公网访问
description: 配置服务中的函数是否可以访问互联网
default: true
-
在 cli 的表现形式为:
-
在网页端表现形式为
secret
完整的描述为
secret:
type: secret
title: 应用管理员密码
description: 字母、数字、下划线,长度8-30位
default: 12345678
-
在 cli 的表现形式为:
-
在网页端表现形式为
integer | int
完整的描述为
gpuMemorySize:
title: 显存大小
type: integer | int
default: 4096
description: 应用分配显存大小
-
在 cli 的表现形式为:
-
在网页端表现形式为
自定义UI
自定义UI用于在web端适配(具体为函数计算控制台应用中心),用户能够简化一些操作(比如可以下拉选择,而不是手动填写等)。一般以x-
开头
x-bucket
用于oss bucket选择
bucketName:
title: OSS存储桶名
type: string
default: ""
description: OSS存储桶名(注意和函数同地域)
x-bucket:
dependency:
- region # 依赖其他输入字段region
required中不包含bucketName时页面UI展示
启用状态
禁用状态
字段描述
字段名 | 类型 | 描述 |
---|---|---|
dependency | list<string > |
依赖字段 |
x-role
用于角色的选择
triggerRoleArn:
title: 触发器RAM角色ARN
type: string
default: ''
pattern: '^acs:ram::[0-9]*:role/.*$'
description: OSS使用此角色来发送事件通知来调用函数
required: true
x-role:
name: aliyunosseventnotificationrole # 角色名
service: OSS # 服务账号
authorities:
- AliyunFCInvocationAccess
pattern代表正则,表示当前字段的值需要匹配该正则
字段描述
字段名 | 类型 | 描述 |
---|---|---|
name | string |
系统角色名 |
service | string |
服务账号,现在支持的系统账号: OSS,FC,LOG |
authorities | list<string > |
系统策略 |
x-nas
用于 NAS挂载点, VPC, 交换机, 安全组 的选择
mountPointsServerAddr:
title: NAS挂载点地址
type: string
default: ""
description: NAS 挂载点地址,可以登录 <a href="https://nasnext.console.aliyun.com" target="_blank">NAS控制台</a> 查看
x-nas:
denpendency:
- region
字段描述
字段名 | 类型 | 描述 |
---|---|---|
dependency | list<string > |
依赖字段 |
注意,x-nas 配合 'vpcId', 'vswitchId', 'securityGroupId' 字段使用
vpcId:
title: VPC Id
type: string
default: ""
description: NAS 挂载点所在 VPC ID, 例如 vpc-bp1lynmabizqdgt4308dt
vswitchId:
title: 交换机 Id
type: string
default: ""
description: NAS 挂载点所在虚拟交换机VSW ID, 交换机最好在 FC 支持的可用区
securityGroupId:
title: 安全组 Id
type: string
default: ""
description: 登录 <a href="https://ecs.console.aliyun.com/#/securityGroup/region/cn-hangzhou" target="_blank">安全组</a> 查看, 通常默认创建的空安全组即可(注意和上面地域相同), 例如 sg-bp1cd2w08t3dy7nhrvtx
x-acr
用于阿里云容器镜像服务镜像的选择和创建
acrRegistry:
title: 镜像仓库
type: string
examples: ['registry.cn-hangzhou.aliyuncs.com/fc-demo/custom-nodejs14-event-function:v0.1']
description: 镜像仓库地址,需要在 https://cr.console.aliyun.com/ 中开通服务、创建仓库以及设置访问凭证
x-acr:
type: select
字段描述
字段名 | 类型 | 描述 |
---|---|---|
type | String | select:选择镜像, tag: 创建Tag |
x-kafka
用于kafka实例ID, kafkaEndpoint, VPC, 交换机, 安全组 的选择
kafkaInstanceID:
title: kafka instance id
type: string
default: ''
description: kafka 实例 id
x-kafka:
denpendency:
- region
related:
- kafkaEndpoint
- vpcId
- vswitchId
- securityGroupId
字段描述
字段名 | 类型 | 描述 |
---|---|---|
dependency | list<string > |
依赖字段 |
related | list<string > |
关联字段 |
注意,x-kafka 配合 'kafkaEndpoint', 'vpcId', 'vswitchId', 'securityGroupId' 字段使用
kafkaEndpoint:
title: kafka endpoint
type: string
default: ''
description: kafka endpoint, 可以从 kafka 控制台获取
vpcID:
title: kafka 实例所在 vpc id
type: string
default: ''
description: VPC id。请注意需要填写函数计算支持的 az
vswitchID:
title: vswitchID
type: string
default: ''
description: vpc 中 vswitch id,用于内网访问 kafka
securityGroupID:
title: security group id
type: string
default: ''
description: vpc 下安全组 id,用于内网访问 kafka
x-domain
用于可配置域名来访问您的函数
domainName:
title: 域名配置
type: string
default: auto
required: false
x-domain: true
字段描述
字段名 | 类型 | 描述 |
---|---|---|
x-domain | Boolean | x-domain: true,可在web端显示域名配置项 |
自动配置UI
自定义配置域名UI
Tips小贴士
随机后缀名default-suffix
用于字段生成一个随机后缀名,以保证每次初始化时候都可以得到不同的值。比如服务名称等。
serviceName:
title: 服务名
type: string
default: web-framework-${default-suffix}
pattern: "^[a-zA-Z_][a-zA-Z0-9-_]{0,127}$"
description: 服务名称,只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间
-
在cli 的表现形式为:
-
在网页端表现形式为
模版引擎
应用初始化时,使用art-template进行模版解析
比如:编写应用模板时,用户可以自己指定vpc配置,如果指定了就用自定义的,没指定就用auto
-
publish.yaml
vpcConfigType: title: VPC网络配置 type: string description: 配置服务中函数使用的网络,例如配置函数是否可以访问公网,是否可以访问 VPC 中的资源等。 enum: - auto - 自定义配置
-
s.yaml
# ...others service: name: "{{ serviceName }}" description: 欢迎使用ServerlessTool {{if vpcConfigType === 'auto'}} vpcConfig: auto {{else}} vpcConfig: # VPC配置, 配置后function可以访问指定VPC vpcId: "{{vpcID}}" # VPC ID securityGroupId: "{{securityGroupID}}" # 安全组ID vswitchIds: # 交换机 ID 列表 - "{{vswitchID}}" {{/if}}
更多语法支持可以查看art-template文档
自定义过滤器filter
应用初始化时,对模版解析的时候可以自定义过滤器。
- 首先我们需要在
hook/filter.js
文件里定义过滤器hook/filter.js
内容示例function timestamp(value) { return `your code: ${value}` } module.exports = { timestamp, };
-
然后在模版里就可以使用我们定义过的过滤器
s.yaml
使用过滤器示例# ...others time: "{{time | timestamp}}"