功能概述
函数平台现已支持“自定义域名”功能,允许用户通过浏览器或其他终端访问您的函数。
通过添加自定义域名,您可以将该域名指向任意一个开启了函数 URL 的函数,或通过路径映射的方式指向多个函数。此外,您还可以为该域名开启 HTTPS 协议、Web 应用防火墙等选项,以确保其安全性。
通过自定义域名访问函数的实现原理
函数平台为每个账户的每个地域分配了一个 CNAME,格式如下:
<appid>.<region>.tencentscf.com
例如,您的自定义域名为 test.com
,在 DNS 服务商处添加解析记录解析到该域名,并在函数平台配置路径映射到指定的函数。当您的用户访问您的自定义域名 test.com
的指定路径时,经过 DNS 解析,通过 CNAME 被引导到函数平台,并通过路径映射,将请求最终发送到对应的函数,函数响应请求并返回结果给用户。
前提条件
在中国大陆地区提供面向公网服务时,按照国家相关法律法规,您需要先将域名完成备案,然后绑定到服务,从而保障您的用户可通过您的域名访问该服务。中国香港和境外地域的函数绑定的自定义域名不需要备案。
操作步骤
步骤1:添加自定义域名
2. 在左侧导航栏选择高级能力 > 自定义域名,单击添加自定义域名。如下图所示:
注意:
域名有地域属性,域名只能指向同一地域下的函数。
3. 在添加自定义域名内填写已经完成备案的自定义域名。支持单域名(例如 test.com
),暂不支持泛域名(例如 *.test.com
)。如下图所示:
4. 在弹窗内,获取公网 CNAME 或内网 CNAME,前往您的 DNS 解析平台,将您的自定义域名解析到该 CNAME。确认完成解析后,进行下一步。
CNAME 格式如下:
公网 CNAME:<appid>.<region>.tencentscf.com
示例:123456.ap-guangzhou.tencentscf.com
内网 CNAME:<appid>.in.<region>.tencentscf.com
示例:123456.in.ap-guangzhou.tencentscf.com
步骤2:添加路径映射
您可以将不同的路径映射到不同的函数,从而实现不同的请求路径触发执行不同的函数。默认情况下,您只需配置根路径(/)映射到指定的函数的版本或别名即可。
路径映射匹配规则
精确路径:
请求的路径和设置的路径完全一致才可以触发对应的函数。
假设,设置路径为 /a/,对应的命名空间为 n1,对应函数为 f1,对应的版本为1。那么只有来自路径 /a/ 的请求才能触发版本1下的 f1 函数执行,来自路径 /a 或 /a/b 的请求无法触发版本1下的 f1 函数执行。
假设,设置路径为 /a,对应的命名空间为 n1,对应函数为 f1,对应的版本为1。那么只有来自路径 /a 的请求才能触发版本1下的 f1 函数执行,来自路径 /a/ 的请求无法触发版本1下的f1函数执行。
模糊路径:
支持使用通配符(*)设置路径,且通配符(*)只能放到路径的最后;最长前缀匹配原则。
假设,设置路径为 /xxx/*,对应命名空间为 n2,对应函数为 f2,对应版本为1。那么路径前缀为 /login/(例如 /xxx/a、/xxx/b/c/d)的请求都会触发版本1下的 f2 函数执行。
路径重写策略
当您将子路径指向函数,默认情况下,函数内接收到的请求中的 path 是该子路径。例如,以下两种情况的表现是:
1. 精确路径 /home 指向函数 a,则访问 abc.test.com/home 时,函数 a 接收到的请求中的 path 为 /home 。
2. 模糊路径 /test/* 指向函数 b,则访问 abc.test.com/test/login 时,函数 b 接收到的请求中的 path 为 /test/login 。
如果您希望函数接收到的请求可以去除掉子路径,则可开启“重写策略”。对于以上两种情况,启用“重启策略”后,表现是:
1. 精确路径 /home 指向函数 a,则访问 abc.test.com/home 时,函数 a 接收到的请求中的 path 为 / 。
2. 模糊路径 /test/* 指向函数 b,则访问 abc.test.com/test/login 时,函数 b 接收到的请求中的 path 为 /login 。
步骤3:(可选)HTTPS 设置
您也可以选择启用 HTTPS 协议访问自定义域名。
启用后,您需要从 SSL 证书服务选择与该域名匹配的证书,即可完成配置。如果证书下拉列表为空,说明您尚未在 SSL 证书服务拥有与该域名匹配的证书,可先前往 SSL 证书服务完成证书的上传或购买。
完成配置后,即可支持使用 HTTP 或 HTTPS 协议访问该域名。
您还可以启用 强制 HTTPS 选项,启用后,仅支持 HTTPS 协议访问该域名,所有的 HTTP 协议访问请求都将 301 重定向到 HTTPS 协议。
步骤4:(可选)Web 应用防火墙设置
您还可以选择启用 Web 应用防火墙,支持对请求流量进行 BOT、爬虫、恶意注册等防护,有效保障业务安全稳定运行。该能力会产生一定的费用,详情请参见 Web 应用防火墙。 配置步骤如下:
3. 在 Web 应用防火墙购买页,选择“负载均衡型实例”。如下图所示:
4. 购买完成后,返回云函数控制台,在自定义域名配置页面,勾选 Web 应用防火墙启用,在 WAF 实例的下拉列表中选择对应的实例 ID。
步骤5:验证自定义域名
您可以选择通过浏览器测试或通过命令行 curl 测试。访问自定义域名后,验证是否调用了指定的函数。
浏览器测试:
i. 打开浏览器,输入您的自定义域名,例如 https://abc.test.com。
ii. 检查是否正确调用了指定的函数,并返回预期的结果。
命令行 curl 测试:
curl -v https://abc.test.com
检查输出结果,验证是否正确调用了指定的函数,并返回预期的结果。
本页内容是否解决了您的问题?