本文介绍如何在函数计算控制台为Web应用绑定自定义域名。

前提条件

  • 您已创建HTTP函数

    通过自定义域名发出的请求只能触发HTTP函数执行。

  • 您的域名已在阿里云备案或接入备案。更多信息,请参见ICP备案流程概述
  • 您已配置域名解析,若您使用阿里云提供的解析平台,具体操作请参见配置域名解析

操作步骤

  1. 登录函数计算控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,单击自定义域名
  4. 单击创建域名
  5. 增加自定义域名面板,填写相关参数,然后单击确定
    create-domain
    参数 操作
    自定义域名名称 填写已在阿里云备案或接入备案的自定义域名名称。
    开启CDN加速 根据需要打开或关闭CDN加速开关。
    • 打开开关:开启CDN加速功能。

      打开开关后,需要填写自定义的加速域名。然后登录CDN控制台为加速域名配置CNAME。更多信息,请参见CDN加速函数计算源站

    • 关闭开关:关闭CDN加速功能。
    支持协议 在列表中选择自定义域名支持的访问协议,有以下两种类型:
    • HTTP:仅支持通过HTTP协议访问自定义域名。
    • HTTP,HTTPS:支持通过HTTP及HTTPS协议访问自定义域名。
      若支持HTTPS协议访问自定义域名,需要您选择证书类型
      • 如果您选择云盾,请选择云盾证书的证书名称。
      • 如果您选择自定义证书,请手动输入证书名称并填写PEM编码格式的证书私钥信息,或单击管理上传证书前往SSL证书控制台上传证书,证书的大小不超过20 KB,私钥的大小不超过4 KB。如果您没有可用的证书,可以单击一键签发进行证书签发。
    路由设置
    注意 自定义域名只能绑定有HTTP触发器的函数,请先创建HTTP触发器函数,再设置路由。
    设置路径与函数的对应关系,即不同的请求路径可以触发不同的函数执行。您需要设置以下字段:
    • 路径:可以触发指定服务下的指定函数的请求路径。
    • 服务名称:来自指定路径的请求触发的对应服务。
    • 函数名称:来自指定路径的请求触发的指定服务下的对应函数。
    • 版本/别名:来自指定路径的请求触发的指定服务下的对应函数版本或别名。

    更多路由信息,请参见路由匹配规则

    说明 可以根据需要设置多个路由。

路由匹配规则

您需要在绑定自定义域名过程中设置路径和函数的对应关系,来自不同路径的请求就可以触发不同的函数执行。函数计算支持精确匹配和模糊匹配,具体规则如下:
  • 精确匹配:请求的路径和设置的路径完全一致才可以触发对应的函数。

    假设,设置路径为/a,对应的服务为s1,对应函数为f1,对应的版本为1。那么只有来自/a路径的请求才能触发版本1下的f1函数执行,来自/a/路径的请求无法触发版本1下的f1函数执行。

  • 模糊匹配:支持使用通配符(*)设置路径,且通配符(*)只能放到路径的最后。

    假设,设置路径为/login/*,对应服务为s2,对应函数为f2,对应版本为1。那么只要是路径前缀是/login/(例如/login/a、/login/b/c/d)的请求都会触发版本1下的f2函数执行。

说明
  • 若一个自定义域名下配置了多个路由,则精确匹配的优先级大于模糊匹配的优先级。
  • 模糊匹配时满足最长前缀匹配原则。

    假设,配置了/login/a/*和/login/*两个路径,自定义域名为api.app.com,请求URL为api.app.com/login/a/b。此时,该请求URL都满足设置的路径。但是根据最长前缀匹配原则,最终匹配的路径应该是/login/a/*。

示例

假设自定义域名为api.app.com,根据本文的操作步骤,设置了以下5条路由规则。
路由规则 路径 服务名称 函数名称 版本
路由规则1 / s1 f1 1
路由规则2 /* s2 f2 2
路由规则3 /login s3 f3 3
路由规则4 /login/a s4 f4 4
路由规则5 /login/* s5 f5 5
最终匹配结果如下。
请求URL 匹配的服务名称 匹配的函数名称 匹配的版本 匹配的路径
api.app.com s1 f1 1 /
api.app.com/user s2 f2 2 /*
api.app.com/login s3 f3 3 /login
api.app.com/login/a s4 f4 4 /login/a
api.app.com/login/a/b s5 f5 5 /login/*
api.app.com/login/b s5 f5 5 /login/*

结果验证

设置成功后,您可以通过以下方式访问自定义域名进行测试。

  • 方法一:通过命令行curl URL测试。例如curl api.app.com/login
  • 方法二:通过浏览器测试。

    在浏览器地址栏中输入请求URL,然后按回车键可以验证是否调用了目标函数。