如果您的函数提供的是web网页服务或者希望通过Http触发器、自定义域名访问函数,您需要配置自定义域名
典型应用场景
函数计算虽然提供HTTP触发器,但需要用户提供域名。在下面示例场景中,您需要绑定自定义域名。
- 您希望通过HTTP触发器访问函数
- 您有多个函数,并且希望通过同一个域名对外提供服务
- 您有一个Web服务,并提供网页浏览服务,希望可以通过浏览器直接访问该web页面
前提条件
使用限制
- 不支持中文域名。
- 由于域名解析本身是不区分大小写,因此自定义域名生效时会被处理成全小写。
- 域名长度最大支持128个字符,每个层次的子域名至少有一个字符,可以是字母、数字(0-9)或者连字符(-),但是域名的第一个字符不能是连字符(-)。域名的最后一部分(顶级域名)至少有两个字符长,并且必须是字母。
操作步骤
步骤一:配置域名解析
您需要预先为您持有的域名创建一个CNAME记录,指向我们为您提供的一个固定的绑定租户的域名。
步骤二:添加自定义域名
- 登录函数计算控制台,在最左的菜单栏中选择高级功能 > 域名管理。
- 点击创建域名按钮,根据指引填写各种配置项。
- 在路由设置>路由配置中,点击添加路由信息。
配置项 | 子配置项 | 操作 |
---|---|---|
域名 | - | 必填。填写自定义域名地址。例如(mytest.domain.com)。 |
公网/内网CNAME | - | 同一个主账号相同,是作为您域名CNAME记录的值。 |
描述 | - | 用户针对该自定义域名的备注。 |
路由设置 | - | - |
路由设置 | 路由配置 | 设置域名路径与函数的对应关系,可以实现不同的请求路径触发不同的函数响应。可以根据需求,添加多条路径。 |
路由设置 | 路径 | 请求路径,区分大小写,只支持末尾的通配符*,如:/mypath/*。 |
路由设置 | 函数名称 | 当前请求路径触发的函数。 |
路由设置 | 版本或别名 | 触发函数的版本或别名。 |
路由设置 | 开启JWT校验 | 是否针对该条路由开启jwt校验。 |
HTTPS设置 | - | - |
HTTPS设置 | HTTPS | 根据需要启用或禁用HTTPS协议: 禁用:仅能通过http协议访问。 启用:同时支持http和https协议访问。 启用,且勾选强制https:仅支持https协议访问,通过http访问会重定向至https。 |
HTTPS设置 | 证书名称 | SSL证书名称。 |
HTTPS设置 | PEM证书 | PEM证书内容。可以直接粘贴到输入框,也能通过文件上传。 |
HTTPS设置 | 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 |
否 |