tencent cloud

文档反馈

配置自定义域名

最后更新时间:2024-10-17 17:11:58

    功能概述

    函数平台现已支持“自定义域名”功能,允许用户通过浏览器或其他终端访问您的函数。
    通过添加自定义域名,您可以将该域名指向任意一个开启了函数 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 应用防火墙
    配置步骤如下:
    1. 登录 腾讯云控制台
    3. 在 Web 应用防火墙购买页,选择“负载均衡型实例”。如下图所示:
    
    
    
    4. 购买完成后,返回云函数控制台,在自定义域名配置页面,勾选 Web 应用防火墙启用,在 WAF 实例的下拉列表中选择对应的实例 ID。
    
    
    

    步骤5:验证自定义域名

    您可以选择通过浏览器测试或通过命令行 curl 测试。访问自定义域名后,验证是否调用了指定的函数。
    浏览器测试:
    i. 打开浏览器,输入您的自定义域名,例如 https://abc.test.com。
    ii. 检查是否正确调用了指定的函数,并返回预期的结果。
    命令行 curl 测试:
    curl -v https://abc.test.com
    检查输出结果,验证是否正确调用了指定的函数,并返回预期的结果。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持