Parameters 参数
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-bp1lynmabizqdgt4308dtvswitchId: 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。请注意需要填写函数计算支持的 azvswitchID: title: vswitchID type: string default: '' description: vpc 中 vswitch id,用于内网访问 kafkasecurityGroupID: 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
yaml vpcConfigType: title: VPC网络配置 type: string description: 配置服务中函数使用的网络,例如配置函数是否可以访问公网,是否可以访问 VPC 中的资源等。 enum: - auto - 自定义配置
-
s.yaml
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
使用过滤器示例# ...otherstime: "{{time | timestamp}}"