Skip to content

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 的表现形式为: string-1

  • 在网页端表现形式为 string-2

boolean

完整的描述为

internetAccess:
  type: boolean
  title: 允许公网访问
  description: 配置服务中的函数是否可以访问互联网
  default: true
  • 在 cli 的表现形式为: bool-1

  • 在网页端表现形式为 bool-2

secret

完整的描述为

secret:
  type: secret
  title: 应用管理员密码
  description: 字母、数字、下划线,长度8-30位
  default: 12345678
  • 在 cli 的表现形式为: secret-1

  • 在网页端表现形式为 secret-2

integer | int

完整的描述为

gpuMemorySize:
  title: 显存大小
  type: integer | int
  default: 4096
  description: 应用分配显存大小
  • 在 cli 的表现形式为: int-1

  • 在网页端表现形式为 int-2

自定义UI

自定义UI用于在web端适配(具体为函数计算控制台应用中心),用户能够简化一些操作(比如可以下拉选择,而不是手动填写等)。一般以x-开头

x-bucket

用于oss bucket选择

bucketName:
  title: OSS存储桶名
  type: string
  default: ""
  description: OSS存储桶名(注意和函数同地域)
  x-bucket:
    dependency:
      - region # 依赖其他输入字段region

x-bucket-1

required中不包含bucketName时页面UI展示

启用状态 x-bucket-2

禁用状态 x-bucket-3

字段描述

字段名 类型 描述
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

x-role-1

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-nas-1

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

x-acr-1

字段描述

字段名 类型 描述
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-kafka-1

x-domain

用于可配置域名来访问您的函数

domainName:
  title: 域名配置
  type: string
  default: auto
  required: false
  x-domain: true

字段描述

字段名 类型 描述
x-domain Boolean x-domain: true,可在web端显示域名配置项

自动配置UI

x-domain-1

自定义配置域名UI

x-domain-2

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 的表现形式为: tips_1

  • 在网页端表现形式为 tips_2

模版引擎

应用初始化时,使用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}}"