本文介紹如何配置基於規則的自訂解析。
前提條件
已添加需配置自訂解析的網域名稱,參見1. 添加網域名稱。
操作步驟
登入EMAS控制台。
在左側導覽列選擇解析管理> 自訂解析。
點擊添加自訂解析,策略類型選擇規則策略。

您可以做以下配置:
基本資料
參數
說明
網域名稱
您希望自訂解析的網域名稱,例如:www.aliyun.com。
說明網域名稱選擇下拉的資料來源來自於接入網域名稱中已經添加的網域名稱,如果想要自訂解析的網域名稱不在下拉式清單中,可以到網域名稱列表中添加後,再為該網域名稱添加自訂解析記錄。
如果要為某個泛網域名稱的子網域名稱添加自訂解析記錄,例如:*.aliyun.com,但你想要自訂網域名是 a.aliyun.com,則需要將 a.aliyun.com 添加到網域名稱列表中,再為該網域名稱添加自訂解析記錄。
網域名稱選擇下拉欄位選不到對應的網域名稱有以下幾種情況:
想要添加的網域名稱不在網域名稱列表中,您可以到接入網域名稱中添加對應的網域名稱即可。
想要添加的網域名稱是某個泛網域名稱的子網域名稱,將該子網域名稱添加到網域名稱列表即可。
想要添加的網域名稱已經存在自訂解析記錄,需要去自訂解析記錄列表管理對應的網域名稱。
線路
可針對電訊廠商和地區進行線路配置。
中國內地線路:按“電訊廠商 > 大區 > 省份”進行配置。
電訊廠商:可以自訂電訊廠商,例如:中國電信。如果電訊廠商設定為預設,表示當前線路覆蓋所有電訊廠商。
大區:按照地區劃分,例如:東北、華北、華東等,省份歸屬在對應大區下。如果大區設定為預設,表示當前線路覆蓋所有大區。
省份:可以自訂省份,例如:北京、河北,如果省份設定為預設,表示當前線路覆蓋所有省份。
海外線路:選擇地區為“境外”時生效,按“洲 > 國家或地區”進行配置。
可以選擇大洲,例如:亞洲、歐洲、南美洲等;也可以在大洲下選擇具體國家或地區,例如:日本、英國等。
如果大洲、國家或地區設定為預設,表示當前線路覆蓋所選範圍內的全部地區。
說明在同一個網域名稱下,對於相同地區的使用者,線路生效的優先順序是:電訊廠商>地理位置>預設。例如,電信-華北-北京>電信-華北-預設>預設-華北-北京>預設-預設-預設。
例如:如果在同一個網域名稱下同時存在兩條規則策略,線路分別是電信-華北-北京和電信-華北-預設,那麼對於北京的電信使用者會使用電信-華北-北京線路的規則策略。
自訂解析規則
一條規則策略最多支援配置 10 條自訂解析規則。
參數
說明
規則名稱
說明當前規則的名稱,可以用來表達規則的用途,例如:通過SDK版本調度。
規則排序
多個規則之間可以調整順序,匹配的邏輯是從上往下串列匹配,順序決定了哪個規則會被優先命中,調整順序後會按照新的順序匹配。
SDNS參數配置
用來匹配用戶端請求解析介面攜帶的SDNS參數,決定該條規則是否被命中,如果匹配成功,則返回該條規則中的解析記錄值。詳細的匹配邏輯請查看規則策略匹配邏輯說明。
參數名稱:SDNS參數的名稱,長度限制為 2 ~ 64 個字元。
參數值:SDNS參數的值,長度限制為 1 ~ 64 個字元。
說明一條規則最多添加 10 個 SDNS參數。
解析介面可以添加SDNS參數,具體查看 用戶端傳遞自訂解析參數 。
解析記錄值
自訂解析的傳回值集合,每個記錄值代表記錄集中的一條解析記錄,必填。
記錄類型:返回解析記錄值的類型,支援A和AAAA記錄。
記錄值:返回的記錄值
您可以添加多個記錄值,在未開啟權重的情況下,添加的多個記錄值將會合并在一起返回。
還可以按照權重調度,只需要開啟按照權重調度開關即可。開啟權重後,可以為每個記錄值設定權重,權重值設定範圍為:1-100,根據記錄值的權重,通過負載平衡演算法返回一個合適的記錄值。
說明一條規則最多添加 10 個記錄值。
TTL
必填,自訂解析記錄的有效期間。有效期間越短,HTTPDNS SDK 中的解析記錄緩衝到期就越快。同時,HTTPDNS SDK 請求新的解析記錄的頻率就越高。
策略驗證
添加規則策略的頁面中,提供了驗證規則的能力,如下圖所示:

在彈窗的策略驗證視窗中,輸入對應的參數可以驗證當前的策略是否符合預期。

規則策略匹配邏輯說明
使用規則策略的解析流程如下所示,通過請求介面中攜帶的參數來匹配具體的規則,規則從上往下串列匹配,一旦有規則命中,則終止匹配並返回已經匹配規則的結果。如果現有的規則都沒有被命中,則去權威伺服器擷取結果並返回。
單條規則參數匹配的邏輯如下:
介面攜帶的參數完整匹配規則中配置的參數, 則匹配成功。完整匹配是指,解析參數是規則配置參數的子集或全集。
如果規則中未配置參數,則該條規則匹配成功。
規則中多個參數之間是「且」的關係。
下面舉例說明具體的匹配邏輯:
假如需要自訂解析的網域名稱是:www.example.com
樣本1
規則 A 參數配置如下:
參數名 | 參數值 |
osType | Android |
規則 B 參數配置如下:
參數名 | 參數值 |
osType | iOS |
規則 C 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
攜帶的參數:
參數名 | 參數值 |
osType | iOS |
匹配結果:
樣本1中,攜帶的參數完全符合到規則B,HTTPDNS 服務端會返回規則 B 中的記錄值。
樣本2
規則 A 參數配置如下:
參數名 | 參數值 |
osType | iOS |
bizType | app |
規則 B 參數配置如下:
參數名 | 參數值 |
osType | iOS |
規則 C 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
攜帶的參數:
參數名 | 參數值 |
osType | iOS |
匹配結果:
樣本2中,因為規則的參數是「且」的關係,根據完全符合的原則,攜帶的參數完全符合到 規則B,HTTPDNS 服務端會返回規則 B 中的記錄值。
樣本3
規則 A 參數配置如下:
參數名 | 參數值 |
osType | iOS |
bizType | car |
規則 B 參數配置如下:
參數名 | 參數值 |
osType | iOS |
bizType | car |
region | hangzhou |
規則 C 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
region | shanghai |
攜帶的參數:
參數名 | 參數值 |
osType | iOS |
bizType | car |
region | hangzhou |
匹配結果:
樣本3中,根據完全符合和優先返回的原則,攜帶的參數完整匹配到規則A,HTTPDNS 服務端會優先返回規則 A 中的記錄值。
樣本4
規則 A 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
規則 B 參數配置如下:
參數名 | 參數值 |
osType | iOS |
bizType | car |
region | hangzhou |
規則 C 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
region | shanghai |
攜帶的參數:
參數名 | 參數值 |
osType | iOS |
匹配結果:
樣本4中,根據完全符合和優先返回的原則,攜帶的參數沒有命中任何規則,HTTPDNS 服務端會返回權威伺服器的查詢結果。
樣本5
規則 A 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
規則 B 沒有配置參數。
規則 C 參數配置如下:
參數名 | 參數值 |
osType | Android |
bizType | car |
region | shanghai |
攜帶的參數:
參數名 | 參數值 |
osType | iOS |
匹配結果:
樣本 5 中,根據完全符合和優先返回的原則,攜帶的參數完整匹配到規則 B,HTTPDNS 服務端會優先返回規則 B 中的記錄值。
後續步驟
參考以上內容,您已經配置了基於規則的自訂解析,請參考整體使用流程繼續完成後續步驟。