如果您的函数提供的是web网页服务或者希望通过Http触发器、自定义域名访问函数,您需要配置自定义域名
典型应用场景
函数计算虽然提供HTTP触发器,但需要用户提供域名。在下面示例场景中,您需要绑定自定义域名。
- 您希望通过HTTP触发器访问函数
- 您有多个函数,并且希望通过同一个域名对外提供服务
- 您有一个Web服务,并提供网页浏览服务,希望可以通过浏览器直接访问该web页面
前提条件
创建函数
使用限制
- 不支持中文域名
- 由于域名解析本身是不区分大小写,因此自定义域名生效时会被处理成全小写
- 域名长度最大支持128个字符,每个层次的子域名至少有一个字符,可以是字母、数字(0-9)或者连字符(-),但是域名的第一个字符不能是连字符(-)。域名的最后一部分(顶级域名)至少有两个字符长,并且必须是字母。
操作步骤
步骤一:配置域名解析
您需要预先为您持有的域名创建一个CNAME记录,指向我们为您提供的一个固定的绑定租户的域名。
步骤二:添加自定义域名
- 登录函数计算控制台,在最左的菜单栏中选择高级功能 > 域名管理
- 点击创建域名按钮,根据指引填写各种配置项
- 在路由设置>路由配置中,点击添加路由信息
配置项 | 子配置项 | 操作 |
---|---|---|
基本配置 | ||
域名 | 必填。填写自定义域名地址。例如(mytest.domain.com) | |
公网/内网CNAME | 同一个主账号相同,是作为您域名CNAME记录的值 | |
描述 | 用户针对该自定义域名的备注 | |
路由设置 | ||
路由配置 | 设置域名路径与函数的对应关系,可以实现不同的请求路径触发不同的函数响应。可以根据需求,添加多条路径 | |
路径 | 请求路径,区分大小写,只支持末尾的通配符(),如:/mypath/ | |
函数名称 | 当前请求路径触发的函数 | |
版本或别名 | 触发函数的版本或别名 | |
开启JWT校验 | 是否针对该条路由开启jwt校验 | |
HTTPS设置 | ||
HTTPS | 根据需要启用或禁用HTTPS协议:禁用。仅能通过http协议访问启用。同时支持http和https协议访问启用,且勾选强制https。仅支持https协议访问,通过http访问会重定向至https | |
证书名称 | SSL证书名称 | |
PEM证书 | PEM证书内容。可以直接粘贴到输入框,也能通过文件上传 | |
PEM证书密钥 | PEM证书密钥。可以直接粘贴到输入框,也能通过文件上传 | |
认证设置 | ||
认证方式 | 无需认证:不需要对HTTP请求进行身份验证,支持匿名访问,任何人都可以发起HTTP请求调用您的函数JWT认证:需要对HTTP请求进行JWT认证 |
步骤三:验证自定义域名
设置成功后,可以通过以下方式访问您的函数
- 方法一:直接在浏览器输入自定义域名和路径,浏览器将返回函数响应
- 方法二:通过curl命令行工具访问,例如 curl -v -L http://mytest.domain.com/path/to/faas
匹配规则
路由匹配规则
设置域名路径与函数的对应关系,可以实现不同的请求路径触发不同的函数响应。函数计算支持精确匹配和前缀匹配,具体规则如下:
- 精确匹配:精确匹配 URL 路径,且区分大小写,优先级最高
- 前缀匹配:支持使用通配符()设置路径,且通配符()只能放到路径的最后,当有通配符(*)时,将基于以 / 分隔的 URL 路径前缀匹配。匹配区分大小写, 并且对路径中各个元素逐个执行匹配操作。 路径元素指的是由 / 分隔符分隔的路径中的标签列表。 如果每个 p 都是请求路径 p 的元素前缀,则请求与路径 p 匹配。
说明
如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则不会被视为匹配 (例如:/foo/bar 匹配 /foo/bar/baz, 但不匹配 /foo/barbaz)。示例
类型 | 路径 | 请求路径 | 匹配与否? |
---|---|---|---|
类型 | 路径 | 请求路径 | 匹配与否? |
前缀匹配 | /* |
(所有路径) | 是 |
精确匹配 | /foo |
/foo |
是 |
精确匹配 | /foo |
/bar |
否 |
精确匹配 | /foo/bar |
/foo/bar/baz |
是 |
精确匹配 | /foo/bar | /foo/barbaz |
否 |