edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范
component: devsapp/fc # 组件名称
name: fc-deploy-service # service名称
description: dem component # Service的简短描述
internetAccess: true # 设为true让function可以访问公网
role: 'acs:ram::xxx:role/AliyunFcDefaultRole' # 授予函数计算所需权限的RAM role, 使用场景包含 1. 把 function产生的 log 发送到用户的 logstore 中 2. 为function 在执行中访问其它云资源生成 token
tracingConfig: Enable # 链路追踪,可取值:Enable、Disable
nasConfig: # NAS配置, 配置后function可以访问指定NAS
userId: 10003 # userID, 默认为10003
groupId: 10003 # groupID, 默认为10003
- serverAddr: xxx.cn-qingdao.nas.aliyuncs.com # NAS 服务器地址
nasDir: /fc-deploy-service # NAS目录
fcDir: /mnt/auto # 函数计算目录
vpcConfig: # VPC配置, 配置后function可以访问指定VPC
securityGroupId: xxx # 安全组ID
logConfig: # log配置,function产生的log会写入这里配置的logstore
project: xxx # loghub中的project名称
logstore: xxx # loghub中的logstore名称
enableRequestMetrics: true # RequestMetrics开关,取值true/false
enableInstanceMetrics: true # InstanceMetrics开关,取值true/false
logBeginRule: DefaultRegex # 日志是否切分,取值 DefaultRegex/None
- endpoint: http://oss-cn-shenzhen-internal.aliyuncs.com # OSS服务地址
bucketName: test-oss-name # OSS bucket名称
bucketPath: /my-dir # 挂载的OSS Bucket路径。留空或者填`/`,都表示挂载bucket根目录
mountDir: /mnt/example-bucket # 函数计算目录
readOnly: false # 是否挂载为只读
vpcBinding: # 仅允许指定 VPC 调用函数
name: fc-base-service # function名称
description: 'this is test' # function的简短描述
codeUri: './code.zip' # 代码位置
ossBucket: xxx # 代码存放的 oss 存储桶
ossKey: xxx # 如果指定 oss 代码,所对应的对象,不能与codeUri同时出现
handler: 'index.handler' # function执行的入口,具体格式和语言相关
memorySize: 128 # function的内存规格
timeout: 60 # function运行的超时时间
caPort: 9000 # CustomContainer/Runtime指定端口
customContainerConfig: # 自定义镜像配置
command: xxx # 容器启动指令,示例值: '["/code/myserver"]'
args: xxx # 容器启动参数,示例值: '["-arg1", "value1"]'
instanceID: cri-xxxxxx # 容器镜像服务企业版实例的ID。当容器镜像选择的是企业版实例时,您需要给容器镜像服务企业版添加实例ID,该实例的默认解析必须是服务所在的VPC网络地址。目前不支持PrivateZone产品定义域名解析
accelerationType: Default # 镜像加速开关,可选值:'Default'、'None',前者表示开启,后者表示关闭
environmentVariables: # 环境变量
initializationTimeout: 20 # 初始化方法超时时间
initializer: index.init # 初始化方法
instanceConcurrency: 1 # 单实例多并发
instanceType: e1 # 函数实例类型,可选值为:e1(弹性实例)、c1(性能实例)、g1(GPU实例)
layers: # 函数绑定层,支持 Nodejs、Python、Java、Php、Golang、.NET和Custom Runtime;取值是层的 ARN; 多个层会按照数组下标从大到小的顺序进行合并,下标小的层的内容会覆盖下标大的层的同名文件
instanceLifecycleConfig: # 扩展函数
preFreeze: # PreFreeze 函数
handler: index.xxx # 函数入口
handler: index.xxx # 函数入口
asyncConfiguration: # 异步配置
onSuccess: acs:fc:{region}:{uid}:services/{serviceName}.{qualifier}/functions/{functionName} # 异步调用成功的目标服务
onFailure: acs:fc:{region}:{uid}:services/{serviceName}.{qualifier}/functions/{functionName} # 异步调用失败的目标服务
# onSuccess: acs:fc:::services/{serviceName}.{qualifier}/functions/{functionName}
# onSuccess: acs:mns:::/queues/{queuesName}/messages # mns/queues
# onSuccess: acs:mns:::/topics/{topicsName}/messages # mns/topics
maxAsyncEventAgeInSeconds: 456 # 消息最大存活时长,取值范围[1,2592000]。单位:秒
maxAsyncRetryAttempts: 3 # 异步调用失败后的最大重试次数,默认值为3。取值范围[0,8]
statefulInvocation: true #是否开启有状态异步调用
nameServers: # DNS 服务器的 IP 地址列表
- default.svc.test.example
- svc.jqDgWvOo.test.example
dnsOptions: # 对应 resolv.conf DNS 配置的 Options 项
- name: ndots # 对应 resolv.conf DNS 配置的 Options 项的键
value: '6' # 对应 resolv.conf DNS 配置的 Options 项的值
- name: edns # 对应 resolv.conf DNS 配置的 Options 项的键
value: '7' # 对应 resolv.conf DNS 配置的 Options 项的值
customRuntimeConfig: # 自定义运行时启动配置
command: # 启动指令,示例值: ["/code/myserver"]
- /code/node_modules/ts-node/dist/bin.js
args: # 启动参数,示例值: ["-arg1", "value1"]
httpGetUrl: /url # 容器自定义健康检查 URL 地址
initialDelaySeconds: 0 # 容器启动到发起健康检查的延迟
periodSeconds: 3 # 健康检查周期
timeoutSeconds: 1 # 健康检查超时时间
failureThreshold: 3 # 健康检查失败次数阈值
successThreshold: 1 # 健康检查成功次数阈值
- name: httpTrigger # 触发器名称
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
authType: anonymous # 鉴权类型,可选值:anonymous、function
disableURLInternet: false # 是否禁用公网访问 URL
methods: # HTTP 触发器支持的访问方法,可选值:GET、POST、PUT、DELETE、HEAD
- name: timerTrigger # 触发器名称
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
cronExpression: '0 0 8 * * *' # 时间触发器表达式,支持两种设置:@every、cron 表达式
payload: 'awesome-fc' # 代表触发器事件本身的输入内容
- name: ossTrigger # 触发器名称
role: xxx # 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArn: xxx # 触发器事件源的 ARN
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
bucketName: fassdemo # OSS 中目标 bucket 名称
events: # OSS 端触发函数执行的事件列表,参考文档:https://help.aliyun.com/document_detail/62922.html#section-mf3-l4l-1nf
- oss:ObjectRemoved:DeleteObject
- name: logTrigger # 触发器名称
role: xxx # 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArn: xxx # 触发器事件源的 ARN
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
project: fass-demo # 日志项目名称
logstore: fc-log # 日志仓库名称,日志服务触发函数执行过程的日志会记录到该日志仓库中
maxRetryTime: 1 # 表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数,取值范围:[0,100]
triggerInterval: 30 # 日志服务触发函数运行的时间间隔,取值范围:[3,600],单位:秒
logstore: function-log # 触发器会定时从该日志仓库中订阅数据到函数服务进行自定义加工
functionParameter: # 该参数将作为函数Event的Parameter传入函数。默认值为空({})
- name: mnsTrigger # 触发器名称
role: xxx # 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArn: xxx # 触发器事件源的 ARN
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
topicName: test-topic # mns topic的名字
region: cn-hangzhou # mns topic 所在的 region,如果不填,默认为和函数一样的 region
notifyContentFormat: 'JSON' # 推送给函数入参 event 的格式,可选值:STREAM, JSON
notifyStrategy: 'BACKOFF_RETRY' # 调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY
filterTag: abc # 描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 16 个字符的字符串,默认不进行消息过滤,即默认不填写该字段
- name: cdnTrigger # 触发器名称
role: xxx # 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArn: xxx # 触发器事件源的 ARN
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
eventName: LogFileCreated # 为 CDN 端触发函数执行的事件,一经创建不能更改
eventVersion: '1.0.0' # 为 CDN 端触发函数执行事件的版本,一经创建不能更改
notes: cdn events trigger test # 备注信息
- name: tablestoreTrigger # 触发器名称
role: xxx # 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
sourceArn: xxx # 触发器事件源的 ARN
config: # 触发器配置,包括OSS触发器, Log触发器, Log触发器, Timer触发器, Http触发器, MNS触发器, CDN触发器
instanceName: xxx # 表格存储实例的名称
tableName: xxxs # 实例中的表名称
- domainName: auto # 域名,如果是auto取值,系统则会默认分配域名
protocol: HTTP # 协议,取值:HTTP, HTTPS, HTTP, HTTPS
serviceName: fc-depice # 服务名
functionName: function # 函数名
wafConfig: # Web应用防火墙配置信息
enableWAF: true # 是否开启Web应用防火墙
certificate: xxx # 表示私钥,内容仅支持 PEM 格式
privateKey: xxx # 表示证书,内容仅支持 PEM 格式