Skip to content

Yaml 规范

Schema

参数详情

完整的示例请参考 fc3-domain example

参数名必填类型参数描述
regionTrueenum地域, 支持情况参见函数计算开服地域
domainNameTruestring已在阿里云备案或接入备案的自定义域名名称
protocolTrueenum域名支持的协议类型:
HTTP:仅支持HTTP协议
HTTPS:仅支持HTTPS协议
HTTP,HTTPS:支持HTTP及HTTPS协议
routeConfigTrueStruct路由表:自定义域名访问时的PATH到Function的映射
certConfigFalseStructHTTPS证书的信息
tlsConfigFalseStructTLS配置信息
wafConfigFalseStructWeb应用防火墙配置信息

⚠️ 注意:如果域名配置为auto,系统会默认分配***.devsapp.net 作为临时测试域名,该域名是 CNCF SandBox 项目 Serverless Devs 社区所提供,仅供学习和测试使用,不可用于任何生产使用;社区会对该域名进行不定期地拨测,并在域名下发 30 天后进行回收,强烈建议您绑定自定义域名以获得更好的使用体验。

certConfig

参数名必填类型参数描述
certNameTrueString证书名称
privateKeyTrueString表示私钥,内容仅支持 PEM 格式
certificateTrueString表示证书,内容仅支持 PEM 格式
certIdFalseNumber域名证书 ID

certId 和 certName/privateKey/certificate 和这三个参数互斥, 即您有如下两种方式配置 certConfig:

  • 仅配置 certId,这个要求证书和函数属于同一个来源账号
  • 同时配置certName/privateKey/certificate

通过配置 certConfig 获取证书内容

配置 certConfig 时,certificate 和 privateKey 的内容支持多种方式方式获取,参考案例:

直接填写文件内容

resources:
fc-domain-test:
component: fc3-domain
props:
domainName: test.com
protocol: HTTP,HTTPS
routeConfig:
routes:
- functionName: test
methods:
- GET
path: /a
qualifier: LATEST
certConfig:
certName: certName
certificate: '-----BEGIN CERTIFICATE----\n certificate content \n----END CERTIFICATE-----'
privateKey: '-----BEGIN RSA PRIVATE KEY----\n privateKey content \n----END RSA PRIVATE KEY-----'

本地文件路径

resources:
fc-domain-test:
component: fc3-domain
props:
domainName: test.com
protocol: HTTP,HTTPS
routeConfig:
routes:
- functionName: test
methods:
- GET
path: /a
qualifier: LATEST
certConfig:
certName: certName
certificate: ./localpath/certificate.pem
privateKey: ./localpath/privateKey.pem

能公网直接访问的http 或者 https地址

resources:
fc-domain-test:
component: fc3-domain
props:
domainName: test.com
protocol: HTTP,HTTPS
routeConfig:
routes:
- functionName: test
methods:
- GET
path: /a
qualifier: LATEST
certConfig:
certName: certName
certificate: https://oss.abc.com/certificate
privateKey: http://oss.abc.com/privateKey

OSS地址,格式 oss://{region}/{bucketName}/{objectName}, 但是需要子账号获取oss文件的权限

resources:
fc-domain-test:
component: fc3-domain
props:
domainName: test.com
protocol: HTTP,HTTPS
routeConfig:
routes:
- functionName: test
methods:
- GET
path: /a
qualifier: LATEST
certConfig:
certName: certName
certificate: oss://cn-hangzhou/bucketName/certificate.pem
privateKey: oss://cn-hangzhou/bucketName/privateKey.pem

通过配置 certId 获取证书内容

当没有配置 certConfig,可以通过 certId 获取配置。当填写 certId 时,s 使用配置的 access 去调用阿里云数字证书管理服务的接口获取配置,所以需要有获取证书详情的权限。

⚠️ 注意:使用 certId 这个参数,证书和函数必须属于同一个阿里云账号

参考案例:

resources:
fc-domain-test:
component: fc3-domain
props:
domainName: test.com
protocol: HTTP,HTTPS
routeConfig:
routes:
- functionName: test
methods:
- GET
path: /a
qualifier: LATEST
certConfig:
certId: 123456

tlsConfig

参数名必填类型参数描述
minVersionTrueStringTLS 协议版本,取值:TLSv1.0TLSv1.1TLSv1.2
maxVersionFalseStringTLS 协议版本,取值:TLSv1.0TLSv1.1TLSv1.2TLSv1.3
cipherSuitesTrueList<String>加密套件

wafConfig

参数名必填类型参数描述
enableWAFFalseBoolean是否开启 Web 应用防火墙

routeConfig

参数名必填类型参数描述
routesTrueList<Struct>路由配置列表

pathConfig

参数名必填类型参数描述
pathTrueString路径
serviceNameFalseString服务名
functionNameFalseString函数名
qualifierFalseString服务的版本
rewriteConfigFalseStructURI 重写配置
methodsFalseList<String>支持的请求方法列表,支持:HEAD、DELETE、POST、GET、OPTIONS、PUT、PATCH。默认支持GET、POST、PUT、DELETE
rewriteConfig
参数名必填类型参数描述
equalRulesFalseList<Struct>完全匹配规则
wildcardRulesFalseList<Struct>通配符匹配规则
regexRulesFalseList<Struct>正则匹配规则
rewriteConfigRules
参数名必填类型参数描述
matchTrueString匹配规则
replacementTrueString替换规则

权限配置相关

最大权限

系统策略:AliyunFCFullAccess

最小权限

需要函数权限较多的原因:domainNameauto 时,需要创建 http 函数作为一个辅助函数完成阿里云身份认证完成测试域名派发

{
"Statement": [
{
"Action": [
"fc:DeleteFunction",
"fc:CreateFunction",
"fc:UpdateFunction"
],
"Effect": "Allow",
"Resource": "acs:fc:<region>:<account-id>:services/*/functions/*"
},
{
"Action": [
"fc:DeleteTrigger",
"fc:UpdateTrigger",
"fc:CreateTrigger"
],
"Effect": "Allow",
"Resource": "acs:fc:<region>:<account-id>:services/*/functions/*/triggers/*"
},
{
"Action": "ram:PassRole",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"fc:GetCustomDomain",
"fc:UpdateCustomDomain",
"fc:CreateCustomDomain"
],
"Resource": "acs:fc:<region>:<account-id>:custom-domains/*",
"Effect": "Allow"
}
],
"Version": "1"
}