函数计算为HTTP触发器提供的默认访问地址在浏览器打开时,默认会强制触发下载行为,把函数结果作为附件下载。如果您的函数提供的是web网页服务或者希望通过自由行域名访问函数,您需要配置自定义域名
典型应用场景
函数计算提供HTTP触发器,用户可通过HTTP触发器访问函数。在下面示例场景中,您需要绑定自定义域名。
- 您有多个函数,并且希望通过同一个域名对外提供服务。
- 您有一个Web服务,并提供网页浏览服务,希望可以通过浏览器直接访问该web页面。
前提条件
已经成功创建函数。具体操作,请参考文档-函数创建
使用限制
- 不支持中文域名。
- 自定义域名不区分大小写。
- 域名长度最大支持128个字符,每个层次的子域名至少有一个字符,可以是字母、数字(0-9)或者连字符(-),但是域名的第一个字符不能是连字符(-)。域名的最后一部分(顶级域名)至少有两个字符长,并且必须是字母。
操作步骤
步骤一:配置域名解析
您需要将您持有的域名解析到函数计算对应地域的Endpoint上,即配置自定义域名的CNAME到函数计算提供的,用户个人拥有Endpoint,该Endpoint可以在相应地域的域名管理下查询到。
步骤二:添加自定义域名
- 登录控制台,在左上角选择目标地域。
- 在最左的菜单栏中选择高级功能 > 域名管理。
- 在创建域名页面,根据指引填写各种配置项,然后单击创建。
配置项 |
操作 |
---|---|
基本配置 | |
域名 |
必填。填写自定义域名地址。例如(mytest.domain.com) |
路由设置 | |
路由配置 |
设置域名路径与函数的对应关系,可以实现不同的请求路径触发不同的函数响应。* 路径:请求路径* 函数名称:指定路径访问触发的函数* 版本或别名:触发函数的版本或别名可以根据需求,添加多条路径 |
HTTPS设置 | |
HTTPS |
根据需要启用或禁用HTTPS协议:* 禁用。仅能通过http协议访问* 启用。同时支持http和https协议访问* 启用,且勾选强制https。仅支持https协议访问,通过http访问会返回 301 重定向至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)。
示例
类型 | 路径 | 请求路径 | 匹配与否? |
---|---|---|---|
Prefix | /* |
(所有路径) | 是 |
Exact | /foo |
/foo |
是 |
Exact | /foo |
/bar |
否 |
Exact | /foo |
/Foo |
否 |