配置自定義域名
更新時間 2024-12-27 09:33:01
最近更新時間: 2024-12-27 09:33:01
分享文章
如果您的函數提供的是web網頁服務或者希望通過Http觸發器、自定義域名訪問函數,您需要配置自定義域名。
典型應用場景
函數計算雖然提供HTTP觸發器,但需要用戶提供域名。在下面示例場景中,您需要綁定自定義域名。
- 您希望通過HTTP觸發器訪問函數。
- 您有多個函數,并且希望通過同一個域名對外提供服務。
- 您有一個Web服務,并提供網頁瀏覽服務,希望可以通過瀏覽器直接訪問該web頁面。
前提條件
使用限制
- 不支持中文域名。
- 由于域名解析本身是不區分大小寫,因此自定義域名生效時會被處理成全小寫。
- 域名長度最大支持128個字符,每個層次的子域名至少有一個字符,可以是字母、數字(0-9)或者連字符(-),但是域名的第一個字符不能是連字符(-)。域名的最后一部分(頂級域名)至少有兩個字符長,并且必須是字母。
操作步驟
步驟一:配置域名解析
您需要預先為您持有的域名創建一個CNAME記錄,指向我們為您提供的一個固定的綁定租戶的域名,此舉的目的是為了驗證域名的所有權歸你所有。
我們同時提供了公網CNAME和內網CNAME的值,您只需要根據您的需要,選擇其中一個即可。例如希望在公網訪問,則請把您域名的CNAME記錄指向公網CNAME值。
步驟二:內網訪問配置
如果您只需要通過公網訪問,跳過此步驟。
如果您需要通過內網訪問,您還需要配置VPCE、內外DNS解釋,詳情請查看訪問函數的內網訪問配置部分。
步驟三:添加自定義域名
- 登錄函數計算控制臺,在最左的菜單欄中選擇高級功能 > 域名管理。
- 點擊創建域名按鈕,根據指引填寫各種配置項。
- 在路由設置>路由配置中,點擊添加路由信息。
| 配置項 | 子配置項 | 操作 |
|---|---|---|
| 域名 | - | 必填。填寫自定義域名地址。例如(mytest.domain.com)。 |
| 公網/內網CNAME | - | 同一個主賬號相同,是作為您域名CNAME記錄的值。 |
| 描述 | - | 用戶針對該自定義域名的備注。 |
| 路由設置 | - | - |
| 路由設置 | 路由配置 | 設置域名路徑與函數的對應關系,可以實現不同的請求路徑觸發不同的函數響應。可以根據需求,添加多條路徑。 |
| 路由設置 | 路徑 | 請求路徑,區分大小寫,只支持末尾的通配符*,如:/mypath/*。 |
| 路由設置 | 函數名稱 | 當前請求路徑觸發的函數。 |
| 路由設置 | 版本或別名 | 觸發函數的版本或別名。 |
| 路由設置 | 開啟JWT校驗 | 是否針對該條路由開啟jwt校驗。 |
| HTTPS設置 | - | - |
| HTTPS設置 | HTTPS | 根據需要啟用或禁用HTTPS協議: 禁用:僅能通過http協議訪問。 啟用:同時支持http和https協議訪問。 啟用,且勾選強制https:僅支持https協議訪問,通過http訪問會重定向至https。 |
| HTTPS設置 | 證書名稱 | SSL證書名稱。 |
| HTTPS設置 | PEM證書 | PEM證書內容。可以直接粘貼到輸入框,也能通過文件上傳。 |
| HTTPS設置 | PEM證書密鑰 | PEM證書密鑰。可以直接粘貼到輸入框,也能通過文件上傳。 |
| 認證設置 | - | - |
| 認證設置 | 認證方式 | 無需認證:不需要對HTTP請求進行身份驗證,支持匿名訪問,任何人都可以發起HTTP請求調用您的函數。 JWT認證:需要對HTTP請求進行JWT認證。 |
步驟四:驗證自定義域名
設置成功后,可以通過以下方式訪問您的函數。
- 方法一:直接在瀏覽器輸入自定義域名和路徑,瀏覽器將返回函數響應。
- 方法二:通過curl命令行工具訪問,例如 curl -v -L //mytest.domain.com/path/to/faas。
匹配規則
路由匹配規則
設置域名路徑與函數的對應關系,可以實現不同的請求路徑觸發不同的函數響應。函數計算支持精確匹配和前綴匹配,具體規則如下:
- 精確匹配:精確匹配 URL 路徑,且區分大小寫,優先級最高。
- 前綴匹配:支持使用通配符設置路徑,且通配符
*只能放到路徑的最后,當有通配符*時,將基于以 / 分隔的 URL 路徑前綴匹配。匹配區分大小寫, 并且對路徑中各個元素逐個執行匹配操作。 路徑元素指的是由 / 分隔符分隔的路徑中的標簽列表。 如果每個 p 都是請求路徑 p 的元素前綴,則請求與路徑 p 匹配。
示例:
如果路徑的最后一個元素是請求路徑中最后一個元素的子字符串,則不會被視為匹配 (例如:/foo/bar 匹配 /foo/bar/baz, 但不匹配 /foo/barbaz)。
| 類型 | 路徑 | 請求路徑 | 匹配與否? |
|---|---|---|---|
| 前綴匹配 | /* | (所有路徑) | 是 |
| 精確匹配 | /foo | /foo | 是 |
| 精確匹配 | /foo | /bar | 否 |
| 精確匹配 | /foo/bar | /foo/barbaz | 否 |
| 前綴匹配 | /aaa/bbb* | /aaa/bbbb | 否,字符串前綴不匹配 |
| 前綴匹配 | /aaa/bbb* | /aaa/bbb/ | 是,忽略尾部斜線 |
| 前綴匹配 | /aaa/bbb* | /aaa/bbb/ccc/ | 是,匹配子路徑 |