tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

配置自定义域名

PDF
聚焦模式
字号
最后更新时间: 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
检查输出结果,验证是否正确调用了指定的函数,并返回预期的结果。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈