本文通過範例為您介紹通過CLI工具使用邊緣指令碼的操作方法,包括在CLI工具下進行規則的編寫、儲存、測試和發布的基本操作。
說明
CLI工具的使用方法,請參見通過CLI工具使用邊緣指令碼。
邊緣指令碼的基本操作如下:
將編寫的邊緣指令碼規則儲存為本地檔案
例如:m3u8.es規則攔截所有.m3u8請求
$cat m3u8.es if eq(substr($uri, -5, -1), '.m3u8') { add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8') exit(400) }發布規則至類比環境
$./es.py action=push_test_env domain=<your domain> rule='{"pos":"head","pri":"0","rule_path":"./m3u8.es","enable":"on"}' Response Code: ============= 200 OK Response Info: ============== { "RequestId": "FB98CC67-8FBA-44CF-A98A-BCE3B19FE510" }查看類比環境的規則列表
$./es.py action=query_test_env domain=<your domain> Response Code: ============= 200 OK Response Info: ============== { "DomainConfigs": [ { "Status": "success", # Status為success時,表示規則已成功設定 "ConfigId": 17432558, "FunctionArgs": [ { "ArgName": "enable", "ArgValue": "on" }, { "ArgName": "pri", "ArgValue": "0" }, { "ArgName": "pos", "ArgValue": "head" }, { "ArgName": "rule", "ArgValue": "if eq(substr($uri, -5, -1), '.m3u8') {\n add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8')\n exit(400)\n}\n" } ], "FunctionName": "dsl_ex" } ], "RequestId": "4DDBF3DB-BCAC-4074-AC1E-B6C1F1C6CBFB" }測試規則
$curl -x 類比環境IP:80 -o /dev/null -v 'http://www.archnote.net/test.m3u8' < HTTP/1.1 400 Bad Request < Server: Tengine < Date: Thu, 18 Jul 2019 09:40:41 GMT < Content-Type: text/html < Content-Length: 265 < Connection: close < X-DEBUG-DENY-REASON: block m3u8 < Via: cache1.cn1191-1[,0] < Timing-Allow-Origin: * < EagleId: 2a7b771b15634428415537484e發布規則至生產環境
$./es.py action=push_product_env domain=<your domain> Response Code: ============= 200 OK Response Info: ============== { "RequestId": "F4B378F8-6AAE-457A-A70C-E856ED8341D8" }查看生產環境的規則列表
$./es.py action=query_product_env domain=<your domain> Response Code: ============= 200 OK Response Info: ============== { "DomainConfigs": { "DomainConfig": [ { "Status": "success", "ConfigId": 17432558, "FunctionArgs": { "FunctionArg": [ { "ArgName": "enable", "ArgValue": "on" }, { "ArgName": "pri", "ArgValue": "0" }, { "ArgName": "pos", "ArgValue": "head" }, { "ArgName": "rule", "ArgValue": "if eq(substr($uri, -5, -1), '.m3u8') {\n add_rsp_header('X-DEBUG-DENY-REASON', 'block m3u8')\n exit(400)\n}\n" } ] }, "FunctionName": "dsl_ex" } ] }, "RequestId": "36D57C1D-C820-43DA-8E70-DADC4B8BD4DD" }